U
    	Ç-e)\ ă                   @   sś  d dl mZ d dlmZmZ d dlmZ edddgidZerŞd dlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d d	l m!Z!m"Z"m#Z#m$Z$ d d
l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3m4Z4 d dl5m6Z6 d dl1m7Z7m8Z8 d dl9Z9dd Z:edd Z;edd Z<edd Z=dd Z>dd Z?dd Z@dd ZAdd  ZBed!d" ZCd#d$ ZDd%d& ZEd'd( ZFd)d* ZGnd+d, ZHdS )-é    ŠÚSymPyExpression)ÚraisesÚXFAIL)Úimport_modulezclang.cindexÚfromlistZcindex)Zimport_kwargs)ÚVariableÚStringÚReturnÚFunctionDefinitionÚIntegerÚFloatÚDeclarationÚ	CodeBlockÚFunctionPrototypeÚFunctionCallÚ	NoneTokenÚ
AssignmentÚTypeÚIntBaseTypeÚSignedIntTypeÚUnsignedIntTypeÚ	FloatTypeÚAddAugmentedAssignmentÚSubAugmentedAssignmentÚMulAugmentedAssignmentÚDivAugmentedAssignmentÚModAugmentedAssignmentÚWhile)ÚPreDecrementÚPostDecrementÚPreIncrementÚPostIncrement)ÚAddÚMulÚModÚPowÚRationalÚStrictLessThanÚLessThanÚStrictGreaterThanÚGreaterThanÚEqualityÚ
Unequality)ÚAndÚNotÚOr)ÚSymbol)ÚfalseÚtrueNc               
   C   s  d} d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }|d tttdttdd	kspt|d
 tttdttdd	kst|d tttdttdt	dt	dt	ddd	ksÔt|d
 tttdttdt	dt	dt	ddd	kst|d tttdttdd	ks<t|d
 tttdttdt	dt	dt	ddd	kszt|d tttdttdd	ks¤t|d tttdttdt	d
dksÔt|d
 tttdttdt	ddkst|d tttdttdt	dt	dt	ddt
ddddksLt|d tttdttdt	dt	dt	ddt
ddddkstd S )Núint a;
int b;
zfloat a;
float b;
zint a;
float b;
int c;z+int x = 1, y = 6.78;
float p = 2, q = 9.67;Úcr   ÚaÚintcŠÚtypeé   ÚbÚfloat32é    é   é   ŠÚnbitsZnmantZnexpé   ÚxŠr9   ÚvalueÚyé   Úpú2.0é5   ŠÚ	precisioné   Úqz9.67)r   Úreturn_exprr   r   r1   r   r	   ÚAssertionErrorr   r   r   ŠÚc_src1Úc_src2Úc_src3Úc_src4Úres1Úres2Úres3Úres4Š rZ   úb/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/parsing/tests/test_c_parser.pyÚtest_variable   sÖ    ˙˙˙˙
ţ˙

ţ˙
üţ˙
üţ˙
ţ˙üţ˙
ţ˙
ý˙
ý˙ü
ř˙ü
ř˙r\   c                  C   s	  d} d}d}d}d}d}d}d}d	}d
}	d}
d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |	d Ą }t |
d Ą }t |d Ą }t |d Ą }t |d Ą }|d tttdttdtddks,t|d tttdttdtddks\t|d tttdttdtddkst|d tttdttdtddksźt|d tttdttdtddksět|d tttdttdtddkst|d tttdttdtddksLt|d tttdttdtddks|t|d tttdttdtddksŹt|d tttd ttdtddksÜt|d tttd!ttdtddkst|d tttdt	td"td#d$tddksDt|d tttdt	td"td#d$tddks|t|d tttdt	td%td&d$tddks´t|d tttdt	td%td&d$tddksět|d tttdt	td%td&d$tddks$t|d' tttd(t	td%td&d$tddks\t|d) tttd*t	td%td&d$tddkst|d tttd+t	td%td&d$tddksĚt|d tttd,t	td%td&d$tddkst|d- tttd.t	td%td&d$tddks<t|d tttdttdtddkslt|d tttdttdtddkst|d tttdttdtddksĚt|d' tttd(ttdtddksüt|d tttdt	td/td0d$tddks4t|d tttdt	td/td0d$tddkslt|d tttdt	td/td0d$tddks¤t|d' tttd(t	td/td0d$tddksÜt|d tttdt
td1td#d$tddkst|d tttdt
td1td#d$tddksLt|d tttdt
td2td&d$tddkst|d tttdt
td2td&d$tddksźt|d tttdt
td2td&d$tddksôt|d' tttd(t
td2td&d$tddks,t|d tttdt
td3td4d$tddksdt|d tttdt
td3td4d$tddkst|d tttdt
td5td0d$tddksÔt|d tttdt
td5td0d$tddk	st|d tttdt
td5td0d$tddk	sDt|d' tttd(t
td5td0d$tddk	s|td S )6Nz
int a = 1;zint a = 1;
int b = 2;
zint a = 2.345, b = 5.67;zint p = 6, q = 23.45;zint x = '0', y = 'a';zint r = true, s = false;zsigned char a = 1, b = 5.1;zjshort a = 1, b = 5.1;signed short c = 1, d = 5.1;short int e = 1, f = 5.1;signed short int g = 1, h = 5.1;z-signed int a = 1, b = 5.1;int c = 1, d = 5.1;z,long a = 1, b = 5.1;long int c = 1, d = 5.1;zunsigned char a = 1, b = 5.1;z@unsigned short a = 1, b = 5.1;unsigned short int c = 1, d = 5.1;zunsigned int a = 1, b = 5.1;z>unsigned long a = 1, b = 5.1;unsigned long int c = 1, d = 5.1;r5   r   r6   r7   r:   rD   r;   rB   é   rH   rG   rN   r>   rC   é0   rF   éa   ÚrÚsZint8r?   )rA   Zint16é   rM   Údé   ÚeÚfÚgé   ÚhZint64é@   Zuint8Zuint16Zuint32r=   Zuint64)r   rO   r   r   r1   r   r	   r   rP   r   r   )rR   rS   rT   rU   Úc_src5Úc_src6Úc_src_type1Úc_src_type2Úc_src_type3Zc_src_type4Zc_src_type5Zc_src_type6Zc_src_type7Zc_src_type8rV   rW   rX   rY   Úres5Úres6Ú	res_type1Ú	res_type2Ú	res_type3Z	res_type4Z	res_type5Z	res_type6Z	res_type7Z	res_type8rZ   rZ   r[   Útest_int   s   ˙˙˙	˙˙˙˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙ţú˙ţú˙ţú˙ţú˙ţű˙
ţú˙ţú˙ţú˙ţú˙ţú˙
ý˙
ý˙
ý˙
ý˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ru   c               
   C   sĘ  d} d}d}d}d}d}d}d}t | d	 Ą }t |d	 Ą }	t |d	 Ą }
t |d	 Ą }t |d	 Ą }t |d	 Ą }t |d	 Ą }t |d	 Ą }|d
 tttdttdtdtdtddtddddksÖt	|	d
 tttdttdtdtdtddtddddkst	|	d tttdttdtdtdtddtddddksft	|
d
 tttdttdtdtdtddtddddksŽt	|
d tttdttdtdtdtddtddddksöt	|d
 tttdttdtdtdtddtddddks>t	|d tttdttdtdtdtddtddddkst	|d
 tttd ttdtdtdtddtddddksÎt	|d tttd!ttdtdtdtddtd"dddkst	|d
 tttdttdtdtdtddtddddks^t	|d tttdttdtdtdtddtd#dddksŚt	|d
 tttdttd$td%td&td'dtddddksît	|d tttdttd$td%td&td'dtd#dddks6t	|d
 tttdttd(td)td*td+dtddddks~t	|d tttdttd(td)td*td+dtd#dddksĆt	d S ),Nzfloat a = 1.0;z float a = 1.25;
float b = 2.39;
zfloat x = 1, y = 2;zfloat p = 5, e = 7.89;zfloat r = true, s = false;zfloat x = 1, y = 2.5;zdouble x = 1, y = 2.5;zlong double x = 1, y = 2.5;r5   r   r6   r<   r=   r>   r?   r@   z1.0rJ   rK   rD   ú1.25r:   r;   z2.3900000000000001rC   rF   rI   rH   z5.0re   z7.89r`   ra   z0.0ú2.5Zfloat64rj   é4   é   Zfloat80éP   é?   é   )
r   rO   r   r   r1   r   r	   r   r   rP   )rR   rS   rT   rU   rk   rm   rn   ro   rV   rW   rX   rY   rp   rr   rs   rt   rZ   rZ   r[   Ú
test_floatx  s   ˙ü
ř˙
ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙r}   c                  C   sĐ  d} d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }|d tttdttdtd	ksrt|d
 tttdttdt	d	kst|d tttdttdtd	ksĆt|d
 tttdttdt	d	ksđt|d tttdttdtd	kst|d
 tttdttdtd	ksHt|d tttdttdtd	kstt|d
 tttdttdtd	ks t|d tttdttdt	d	ksĚtd S )Nzbool a = true, b = false;zbool a = 1, b = 0;zbool a = 10, b = 20;z bool a = 19.1, b = 9.0, c = 0.0;r5   r   r6   ÚboolrD   r:   r;   rB   )
r   rO   r   r   r1   r   r	   r3   rP   r2   rQ   rZ   rZ   r[   Ú	test_boolY  s    ˙˙˙˙
ţ˙

ţ˙

ţ˙

ţ˙

ţ˙
ţ˙
ţ˙
ţ˙
ţ˙r   c                  C   s  d} d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }|d tt tddttttd	t	td
ddkst
|d tt	td
tddttttd	t	td
dtd	dksĐt
|d tttdtdtdtddtddttttdttdtdtdtdddtddksDt
|d tttdtdtdtddtdddkst
d S )Núvoid fun1()
{
int a;
}zint fun2()
{
int a;
return a;
}z#float fun3()
{
float b;
return b;
}zfloat fun4()
{}r5   r   Úfun1rZ   r6   r7   r8   ŠÚnameÚ
parametersÚbodyÚfun2r<   r=   r>   r?   r@   Úfun3r;   Úfun4)r   r   )r   rO   r   r   r	   r   r   r   r1   r   rP   r
   r   r   r   rQ   rZ   rZ   r[   Útest_functionŽ  s    ˙˙˙˙
ţ˙˙ü

ţ˙ůüüüţ˙ô÷üřr   c                  C   sř  d} d}d}t | d Ą }t |d Ą }t |d Ą }|d tt tdttdttdd	ftt	ttd
ttdd	dkst
|d tttdtdttdttdtdtdtddd	ttdttdtdtdtddd	ftt	ttdttdd	tddks*t
|d tttdtdtdtddtdttdttdd	ttdttdtdtdtddd	ttdttdd	ftt	ttdttdtdtdtddd	tddksôt
d S )Nzvoid fun1( int a)
{
int i;
}z/int fun2(float x, float y)
{
int a;
return a;
}z8float fun3(int p, float q, int r)
{
float b;
return b;
}r5   r   r   r6   r7   r8   Úir   r   rC   r<   r=   r>   r?   r@   rF   r   rH   rN   r`   r;   )r   rO   r   r   r	   r   r1   r   r   r   rP   r   r   r
   )rR   rS   rT   rV   rW   rX   rZ   rZ   r[   Útest_parameters  sĆ    ˙˙˙
ţ˙
ţ˙˙÷
üţ	üţö
ţ˙ůé"ü
ţüţ	
ţňüţ˙ôĺr   c            
      C   sŹ  d} d}d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }	|d tttdtd	ttd
ttddfttd
dks t	|d tt
 tddttttd
ttd	tdfdddksčt	|d tttdtdttdttddttdttddttdttddfttddks\t	|d tt
 tddttttdttdtdtdtdfdddks˛t	|d tttdtdttdttddttdttddttdttddfttddks&t	|d tt
 tddttttdttddtttdttddtttdttddtttdttdtdtdtdfdddksĘt	|d tttdtdttdttdtd td!td"d#dttdttdtd td!td"d#dttdttddfttddksft	|d tt
 tddttttd
ttdtd td!td"d#dtttdttdtd td!td"d#dtttdttddtttd$ttdtd
tdtdfdddks2t	|	d tttdtd%dttd&dksdt	|	d tt
 tddttttdttd%ddddks¨t	d S )'Nz@int fun1(int x)
{
return x;
}
void caller()
{
int x = fun1(2);
}zTint fun2(int a, int b, int c)
{
return a;
}
void caller()
{
int y = fun2(2, 3, 4);
}ziint fun3(int a, int b, int c)
{
return b;
}
void caller()
{
int p;
int q;
int r;
int z = fun3(p, q, r);
}zpint fun4(float a, float b, int c)
{
return c;
}
void caller()
{
float x;
float y;
int z;
int i = fun4(x, y, z)
}z7int fun()
{
return 1;
}
void caller()
{
int a = fun()
}r5   r   r7   r   rC   r8   r   r:   ZcallerrZ   rB   )Zfunction_args)rE   r   r6   r;   rF   rM   rd   r   rH   rN   r`   Úzr   r<   r=   r>   r?   r@   r   ZfunÚ )r   rO   r   r   r	   r   r1   r   r
   rP   r   r   r   r   r   Š
rR   rS   rT   rU   rk   rV   rW   rX   rY   rp   rZ   rZ   r[   Útest_function_call  s°   ˙˙˙˙˙

˙˙ů˙˙˙˙˙ü

˙
˙
˙ú
˙óýţ˙˙˙ü

˙
˙
˙ů˙ň
˙˙
˙˙
˙˙ýţ˙˙đü#
ü˙ü˙
˙đ˙éü˙˙
ü˙˙

˙˙ý˙˙˙ćü,
˙ü	˙˙˙˙ür   c                  C   s  d} d}t dd}t dd}| | Ą | |Ą | Ą  | Ą  tdd Ą }tdd Ą }t dĄ t dĄ |d ttt	dt
td	d
kst|d ttt	dt
td	d
ksŔt|d tt tddtttt	dt
td	d
dksţtd S )Nr4   r   z..a.hÚwz..b.hr5   r   r6   r7   r8   r:   r;   r   rZ   r   )ÚopenÚwriteÚcloser   rO   ÚosÚremover   r   r1   r   r	   rP   r   r   r   )rR   rS   Úf1Úf2rV   rW   rZ   rZ   r[   Ú
test_parseŠ  sN    ˙˙






ţ˙

ţ˙

ţ˙˙ür   c            <         sę  d} d}d}d}d}d}d}d}d	}d
}	d}
d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d d d!d"d#t | d$ Ą }t |d$ Ą }t |d$ Ą } t |d$ Ą }!t |d$ Ą }"t |d$ Ą }#t |d$ Ą }$t |d$ Ą }%t |d$ Ą }&t |	d$ Ą }'t |
d$ Ą }(t |d$ Ą })t |d$ Ą }*t |d$ Ą }+t |d$ Ą },t |d$ Ą }-t |d$ Ą }.t |d$ Ą }/t |d$ Ą }0t |d$ Ą }1t |d$ Ą }2t |d$ Ą }3t |d$ Ą }4t |d$ Ą }5t |d$ Ą }6t |d$ Ą }7t |d$ Ą }8t |d$ Ą }9t |d$ Ą }:t |d$ Ą };|d% tt td&d'ttttd(t	td)d*t
ttd(td+d,kst|d% tt td&d'ttttd(t	td)td%d-t
ttd(ttd(td+t
ttd(tttd.td(td/d,kst| d% tt td&d'ttttd(t	td)td0d-t
ttd(ttd(td1d,kstt|!d% tt td&d'ttttd(t	td)d*tttd2t	td)d*t
ttd(td3t
ttd2tttd4ttd(td4ttd5td(td6d,ks$t|"d% tt td&d'ttttd(t	td)d*tttd2t	td)d*tttd$t	td)d*tttd7t	td)d*t
ttd(td+t
ttd2td4t
ttd$td2t
ttd7tttd(td2tttd(td$td4ttd$ttd8td7d,ksDt|#d% tt td&d'ttttd(t	td)d*tttd2t	td)d*tttd$t	td)d*tttd7t	td)d*t
ttd(td+t
ttd2td4t
ttd$td.t
ttd7tttd(td9ttd.ttd2td4ttd4td2ttd$td7d,ksjt|$d% tt td&d'ttttd(ttd:td;td<td=d>d*t
ttd(td?d@dAd,ksÖt|%d% tt td&d'ttttd(ttd:td;td<td=d>d*t
ttd(tdBd@dAd,ksBt|&d% tt td&d'ttttd(ttd:td;td<td=d>d*t
ttd(tdCd@dAd,ksŽt|'d% tt td&d'ttttd(t	td)d*t
ttd(td6d,kst|(d% tt td&d'ttttd(t	td)d*t
ttd(tdDd,ksVt|)d% tt td&d'ttttd(t	td)d*t
ttd(tdEd,ksŞt|*d% tt td&d'ttttd(t	td)d*tttd2t	td)d*tttd$ttd:td;td<td=d>d*t
ttd$tttd(td8td2d,k	sZt|+d% tt td&d'ttttd(t	td)td4d-tttd7t	td)tdFd-tttdGt	td)td0d-tttdHt	td)d*t
ttdHttd+d4td(tttd4td(ttd7ttdGtd8d,k
sHt|,d% tt td&d'ttttd(t	td)d*t
ttd(td+d,k
st|-d% tt td&d'ttttd(t	td)td4d-tttd2t	td)d*t
ttd2ttd(td.d,kst|.d% tt td&d'ttttd(t	td)td3d-tttd2t	td)td.d-tttd$t	td)d*t
ttd$ttd(td2d,ks¸t|/d% tt td&d'ttttd(t	td)td3d-tttd2t	td)td.d-tttdIt	td)tdJd-tttd$t	td)d*t
ttd$tttd(ttd3ttd(td8td2tdId,kst|0d% tt td&d'ttttd(t	td)td3d-tttd2t	td)td.d-tttdIt	td)tdJd-tttd$t	td)d*t
ttd$ttttd(ttd8td2ttd(td2tdId,kst|1d% tt td&d'ttttd(ttdKd*tttd2ttdKd*t
ttd(tt
ttd2td,ksút|2d% tt td&d'ttttd(ttdKd*tttd2ttdKd*tttd$ttdKd*tttd7ttdKd*t
ttd(tt
ttd2tt
ttd$tt
ttd7td,ksČt|3d% tt td&d'ttttd(t	td)td+d-tttd2t	td)td4d-tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*tttdRttdKd*tttdSttdKd*t
ttdLttd(td+t
ttdMttd2td4t
ttdNttd+td(t
ttdOttd+td2t
ttdPttd(td%t
ttdQttd2td0t
ttdRttd(td%t
ttdSttd2tdTd,ksît|4d% tt td&d'ttttd(t	td)td.d-tttd2t	td)td9d-tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*t
ttdLttd(td2t
ttdMttd(td2t
ttdNttd(td2t
ttdOttd(td2t
ttdPttd(td2t
ttdQttd(td2d,ks¤t|5d% tt td&d'ttttd(ttd:td;td<td=d>d*tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*t
ttdLttd(tdUd@dAt
ttdNttdVd@dAtd(d,ks¤t|6d% tt td&d'ttttd(ttd:td;td<td=d>tdUd@dAd-tttd2ttd:td;td<td=d>tdWd@dAd-tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*t
ttdLttd(td2t
ttdMttd(td2t
ttdNttd(td2t
ttdOttd(td2t
ttdPttd(td2t
ttdQttd(td2d,kst|7d% tt td&d'ttttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*t
ttdLtt
ttdMtt
ttdNtt
ttdOtt
ttdPtt
ttdQtd,ksŹt|8d% tt td&d'ttttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*t
ttdLtt
ttdMtt
ttdNtt
ttdOtt
ttdPtt
ttdQtd,ksÎt|9d% tt td&d'ttttd(ttdKd*tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*t
ttdLtd(t
ttdMtt
ttdNtt
ttdOtd(	d,ksžt|:d% tt td&d'ttttd(t	td)d*tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*t
ttdLtd(t
ttdMtt
ttdNtt
ttdOtd(	d,ksŽt|;d% tt td&d'ttttd(t	td)d*tttd2t	td)d*tttd$ttdKd*tttd7ttdKd*tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*t
ttdLttd(td2t
ttdMttd(td$t
ttdNttd$td7t
ttdOttd(td2t
ttdPttd(td$t
ttdQttd$td7d,ksttt  fdXdY tt fdZdY tt fd[dY tt fd\dY tt fd]dY d S )^Nzvoid func(){
int a;
a = 1;
}z2void func(){
int a = 0;
a = a + 1;
a = 3*a - 10;
}z-void func(){
int a = 10;
a = 1 + a - 3 * 6;
}zHvoid func(){
int a;
int b;
a = 100;
b = a*a + a*a + a + 19*a + 1 + 24;
}z`void func(){
int a;
int b;
int c;
int d;
a = 1;
b = 2;
c = b;
d = ((a+b)*(a+c))*((c-d)*(a+c));
}zdvoid func(){
int a;
int b;
int c;
int d;
a = 1;
b = 2;
c = 3;
d = (a*a*a*a + 3*b*b + b + b + c*d);
}z!void func(){
float a;
a = 1.01;
}z'void func(){
float a;
a = 10.0 + 2.5;
}z'void func(){
float a;
a = 10.0 / 2.5;
}z"void func(){
int a;
a = 100 / 4;
}z0void func(){
int a;
a = 20 - 100 / 4 * 5 + 10;
}z4void func(){
int a;
a = (20 - 100) / 4 * (5 + 10);
}z.void func(){
int a;
int b;
float c;
c = b/a;
}zRvoid func(){
int a = 2;
int d = 5;
int n = 10;
int s;
s = (a/2)*(2*a + (n-1)*d);
}z void func(){
int a;
a = 1 % 2;
}z+void func(){
int a = 2;
int b;
b = a % 3;
}z8void func(){
int a = 100;
int b = 3;
int c;
c = a % b;
}z`void func(){
int a = 100;
int b = 3;
int mod = 1000000007;
int c;
c = (a + b * (100/a)) % mod;
}zvoid func(){
int a = 100;
int b = 3;
int mod = 1000000007;
int c;
c = ((a % mod + b % mod) % mod *(a % mod - b % mod) % mod) % mod;
}z5void func(){
bool a
bool b;
a = 1 == 2;
b = 1 != 2;
}z]void func(){
bool a;
bool b;
bool c;
bool d;
a = 1 == 2;
b = 1 <= 2;
c = 1 > 2;
d = 1 >= 2;
}zÔvoid func(){
int a = 1;
int b = 2;
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
bool c7;
bool c8;
c1 = a == 1;
c2 = b == 2;
c3 = 1 != a;
c4 = 1 != b;
c5 = a < 0;
c6 = b <= 10;
c7 = a > 0;
c8 = b >= 11;
}zŚvoid func(){
int a = 3;
int b = 4;
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = a == b;
c2 = a != b;
c3 = a < b;
c4 = a <= b;
c5 = a > b;
c6 = a >= b;
}zvoid func(){
float a = 1.25float b = 2.5;
bool c1;
bool c2;
bool c3;
bool c4;
c1 = a == 1.25;
c2 = b == 2.54;
c3 = 1.2 != a;
c4 = 1.5 != b;
}zŽvoid func(){
float a = 1.25
float b = 2.5;
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = a == b;
c2 = a != b;
c3 = a < b;
c4 = a <= b;
c5 = a > b;
c6 = a >= b;
}zźvoid func(){
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = true == true;
c2 = true == false;
c3 = false == false;
c4 = true != true;
c5 = true != false;
c6 = false != false;
}zźvoid func(){
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = true && true;
c2 = true && false;
c3 = false && false;
c4 = true || true;
c5 = true || false;
c6 = false || false;
}z|void func(){
bool a;
bool c1;
bool c2;
bool c3;
bool c4;
c1 = a && true;
c2 = false && a;
c3 = true || a;
c4 = a || false;
}zmvoid func(){
int a;
bool c1;
bool c2;
bool c3;
bool c4;
c1 = a && 1;
c2 = a && 0;
c3 = a || 1;
c4 = 0 || a;
}z°void func(){
int a;
int b;
bool c;
bool d;
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = a && b;
c2 = a && c;
c3 = c && d;
c4 = a || b;
c5 = a || c;
c6 = c || d;
}zvoid func(){
int a;
a = -1;
}zvoid func(){
int a;
a = -+1;
}zvoid func(){
int a;
a = 2*-2;
}z#void func(){
int a;
a = (int)2.0;
}z/void func(){
int a=100;
a = (a==100)?(1):(0);
}r5   r   ÚfuncrZ   r6   r7   r8   r:   r   rD   rM   iö˙˙˙é
   iď˙˙˙r;   éd   rB   é   é   rc   é˙˙˙˙rd   r<   r=   r>   r?   r@   z1.01rJ   rK   ú12.5ú4.0éĄ˙˙˙éÔţ˙˙r]   Únra   ÚmodéĘ;r~   Úc1Úc2Úc3Úc4Úc5Úc6Úc7Úc8ry   rv   ú1.2rw   c                      s
   t  dS ŠNr5   r   rZ   ŠÚc_src_raise1rZ   r[   Ú<lambda>ő  ó    z'test_binary_operators.<locals>.<lambda>c                      s
   t  dS rŻ   r   rZ   ŠÚc_src_raise2rZ   r[   r˛   ö  rł   c                      s
   t  dS rŻ   r   rZ   )Úc_src_raise3rZ   r[   r˛   ÷  rł   c                      s
   t  dS rŻ   r   rZ   )Úc_src_raise4rZ   r[   r˛   ř  rł   c                      s
   t  dS rŻ   r   rZ   )Úc_src_raise5rZ   r[   r˛   ů  rł   )!r   rO   r   r   r	   r   r   r   r1   r   r   r   rP   r#   r$   r&   r   r   r'   r%   r   r2   r3   r,   r-   r(   r)   r*   r+   r.   r0   r   ÚNotImplementedError)<rR   rS   rT   rU   rk   rl   Úc_src7Úc_src8Úc_src9Úc_src10Úc_src11Úc_src12Úc_src13Úc_src14Úc_src15Úc_src16Úc_src17Úc_src18Úc_src19Úc_src20Úc_src21Úc_src22Úc_src23Úc_src24Úc_src25Úc_src26Úc_src27Úc_src28Úc_src29Úc_src30rV   rW   rX   rY   rp   rq   Úres7Úres8Úres9Úres10Úres11Úres12Úres13Úres14Úres15Úres16Úres17Úres18Úres19Úres20Úres21Úres22Úres23Úres24Úres25Úres26Úres27Úres28Úres29Úres30rZ   )rą   rľ   rś   rˇ   r¸   r[   Útest_binary_operatorsß  s:   ˙˙	˙˙
˙˙˙	˙	˙	˙	˙	˙	˙˙˙	˙
˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙	˙	˙	˙	˙
˙˙úü
ţ˙
˙ţţü˙öü
ţ˙
ţţůü
˙˙
˙˙
ţ
ţţţöţňü$
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţţűţţőţáü<
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţţţţţđţßü@ü˙˙


ţőüü˙˙


ţőüü˙˙


ţőü
˙˙
ţúü
˙˙
ţúü
˙˙
ţúü
˙˙
˙˙ü˙˙

ţűţëü&
ţ˙
ţ˙
ţ˙
˙˙
ţţţűýţčü3
˙˙
ţúü
ţ˙
˙˙
ţţôü
ţ˙
ţ˙
˙˙
ţţîü 
ţ˙
ţ˙
ţ˙
˙˙
ţúţôţčü0
ţ˙
ţ˙
ţ˙
˙˙
˙ţţůóţčü1
˙˙
˙˙
ţ
ţńü
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţßü,
ţ˙
ţ˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţţ
ţţ
ţţ
ţţ
ţţ
ţţ
ţţ
ţţüt
ţ˙
ţ˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţţ
ţţ
ţţ
ţţ
ţţ
ţţ˛ü\ü˙˙

˙˙
˙˙
˙˙
˙˙

ţţ

ţţÚü5ü
ů˙ü
ů˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţţ
ţţ
ţţ
ţţ
ţţ
ţţ§üg 
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţ
ţ
ţÍý=
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţ
ţ
ţÍü=
˙˙
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţÚü1
˙˙
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţÚü1
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţţ
ţţ
ţţ
ţţ
ţţ
ţţŞüdrę   c            @         sn  d} d}d}d}d}d}d}d}d	}d
}	d}
d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d }d! d"t | d# Ą } t |d# Ą }!t |d# Ą }"t |d# Ą }#t |d# Ą }$t |d# Ą }%t |d# Ą }&t |d# Ą }'t |d# Ą }(t |	d# Ą })t |
d# Ą }*t |d# Ą }+t |d# Ą },t |d# Ą }-t |d# Ą }.t |d# Ą }/t |d# Ą }0t |d# Ą }1t |d# Ą }2t |d# Ą }3t |d# Ą }4t |d# Ą }5t |d# Ą }6t |d# Ą }7t |d# Ą }8t |d# Ą }9t |d# Ą }:t |d# Ą };t |d# Ą }<t |d# Ą }=t |d# Ą }>t |d# Ą }?| d$ tttd%ttd&td'd(ksxt| d) tttd*ttd&td%d(ks¨t|!d$ tttd*ttd&td)d(ksŘt|!d) tttd%ttd&t	td*td)d(kst|"d$ tttd*t
td+td,td-td.d/td0d1d2d(ksZt|"d) tttd%t
td+td,td-td.d/ttd3d1d2td*d(ksŹt|#d$ tttd*ttd&td4d(ksÜt|$d$ tttd*ttd&td5d(kst|%d$ tttd%ttd&td6d(ks<t|%d) tttd#ttd&td7d(kslt|%d6 tttd*ttd&t	td%ttd8td#d(ks°t|&d$ tttd%ttd&td)d(ksŕt|&d) tttd#ttd&t	td%td6d(kst|&d6 tttd*ttd&ttd9ttd%td6td#d(ksdt|'d$ tt td:d;ttttd*ttd&td)d(tttd%ttd&td6d(tttd<ttd&td*d(tttd*td%tttd%td<d=kst|(d$ tttd*ttd&td)d(ksBt|(d) tttd%ttd&td6d(ksrt|(d6 tttd#ttd&td*d(ks˘t|(d7 tttd>ttd&t	td*td%td#d(ksât|(d8 tttd?ttd&t	ttd*td7ttd7ttd*td6td%ttd7td*ttd%td6ttd%td7d(kspt|(d@ tttdAttd&tt	td*td%ttdBtd#t	td*td%td#d(ksÔt|(dC tttdDttd&ttd*t	td%ttdBtd#tt	td*td%td#td>td6d(ksHt|)d$ tttd*t
td+td,td-td.d/tdEd1d2d(kst|)d) tttd%t
td+td,td-td.d/tdFd1d2d(ksŘt|)d6 tttd#t
td+td,td-td.d/t	ttd*td6ttd6td*td%ttd%td6d(k	sPt|*d$ tttd*t
td+td,td-td.d/tdGd1d2d(k	st|+d$ tttd*ttd&tdHd(k	sČt|,d$ tttd*ttd&tdId(k	sřt|-d$ tttd*ttd&tdJd(k
s(t|.d$ tttd*ttd&td8d(k
sXt|.d) tttd%ttd&td6d(k
st|.d6 tttd#t
td+td,td-td.d/tttd*tdBtd%d(k
sŕt|/d$ tttd*ttd&td6d(kst|/d) tttd>ttd&td@d(ks@t|/d6 tttdKttd&td9d(kspt|/d7 tttdLttd&ttd)d6td*t	ttd6td*ttd>t	tdKtdBd(ksÚt|0d$ tttd*ttd&td)d(ks
t|1d$ tttd*ttd&td6d(ks:t|1d) tttd%ttd&ttd*td7d(kstt|2d$ tttd*ttd&td'd(ks¤t|2d) tttd%ttd&td7d(ksÔt|2d6 tttd#ttd&ttd*td%d(kst|3d$ tttd*ttd&td'd(ks>t|3d) tttd%ttd&td7d(ksnt|3d6 tttdMttd&tdNd(kst|3d7 tttd#ttd&tt	td*ttd'ttd*tdBtd%tdMd(ksüt|4d$ tttd*ttd&td'd(ks,t|4d) tttd%ttd&td7d(ks\t|4d6 tttdMttd&tdNd(kst|4d7 tttd#ttd&ttt	td*ttdBtd%t	td*td%tdMd(ksît|5d$ tttd*ttdOtd(kst|5d) tttd%ttdOtd(ksFt|6d$ tttd*ttdOtd(ksrt|6d) tttd%ttdOtd(kst|6d6 tttd#ttdOtd(ksĘt|6d7 tttd>ttdOtd(ksöt|7d$ tttd*ttd&td)d(ks&t|7d) tttd%ttd&td6d(ksVt|7d6 tttdPttdOttd*td)d(kst|7d7 tttdQttdOttd%td6d(ksĘt|7d8 tttdRttdOttd)td*d(kst|7d@ tttdSttdOttd)td%d(ks>t|7dC tttdTttdOttd*td$d(ksxt|7dU tttdVttdOttd%td9d(ks˛t|7d. tttdWttdOttd*td$d(ksět|7dX tttdYttdOttd%tdZd(ks&t|8d$ tttd*ttd&td7d(ksVt|8d) tttd%ttd&td8d(kst|8d6 tttdPttdOttd*td%d(ksŔt|8d7 tttdQttdOttd*td%d(ksút|8d8 tttdRttdOttd*td%d(ks4t|8d@ tttdSttdOttd*td%d(ksnt|8dC tttdTttdOttd*td%d(ks¨t|8dU tttdVttdOttd*td%d(ksât|9d$ tttd*t
td+td,td-td.d/td[d1d2d(ks*t|9d) tttd%t
td+td,td-td.d/tdFd1d2d(ksrt|9d6 tttdPttdOttd*td[d1d2d(ks°t|9d7 tttdQttdOttd%td\d1d2d(ksît|9d8 tttdRttdOttd]d1d2td*d(ks,t|9d@ tttdSttdOttd^d1d2td%d(ksjt|:d$ tttd*t
td+td,td-td.d/td[d1d2d(ks˛t|:d) tttd%t
td+td,td-td.d/tdFd1d2d(ksút|:d6 tttdPttdOttd*td%d(ks4t|:d7 tttdQttdOttd*td%d(ksnt|:d8 tttdRttdOttd*td%d(ks¨t|:d@ tttdSttdOttd*td%d(ksât|:dC tttdTttdOttd*td%d(kst|:dU tttdVttdOttd*td%d(ksVt|;d$ tttdPttdOtd(kst|;d) tttdQttdOtd(ksŽt|;d6 tttdRttdOtd(ksÚt|;d7 tttdSttdOtd(kst|;d8 tttdTttdOtd(ks2t|;d@ tttdVttdOtd(ks^t|<d$ tttdPttdOtd(kst|<d) tttdQttdOtd(ksśt|<d6 tttdRttdOtd(ksât|<d7 tttdSttdOtd(kst|<d8 tttdTttdOtd(ks:t|<d@ tttdVttdOtd(ksft|=d$ tttd*ttdOtd(kst|=d) tttdPttdOtd*d(ksÂt|=d6 tttdQttdOtd(ksît|=d7 tttdRttdOtd(kst|=d8 tttdSttdOtd*d(ksJt|>d$ tttd*ttd&td)d(kszt|>d) tttdPttdOtd*d(ksŞt|>d6 tttdQttdOtd(ksÖt|>d7 tttdRttdOtd(kst|>d8 tttdSttdOtd*d(ks2t|?d$ tttd*ttd&td)d(ksbt|?d) tttd%ttd&td$d(kst|?d6 tttd#ttdOtd(ksžt|?d7 tttd>ttdOtd(ksęt|?d8 tttdPttdOttd*td%d(ks$t|?d@ tttdQttdOttd*td#d(ks^t|?dC tttdRttdOttd#td>d(kst|?dU tttdSttdOttd*td%d(ksŇt|?d. tttdTttdOttd*td#d(kst|?dX tttdVttdOttd#td>d(ksFttt  fd_d` tt fdad` d S )bNzint b = 100;
int a = b;
zint a = 1;
int b = a + 1;
z*float a = 10.0 + 2.5;
float b = a * 20.0;
zint a = 1 + 100 - 3 * 6;
z+int a = (((1 + 100) * 12) - 3) * (6 - 10);
z)int b = 2;
int c = 3;
int a = b + c * 4;
z2int b = 1;
int c = b + 2;
int a = 10 * b * b * c;
zCvoid func(){
int a = 1;
int b = 2;
int temp = a;
a = b;
b = temp;
}zšint a = 1;
int b = 2;
int c = a;
int d = a + b + c;
int e = a*a*a + 3*a*a*b + 3*a*b*b + b*b*b;
int f = (a + b + c) * (a + b - c);
int g = (a + b + c + d)*(a + b + c + d)*(a * (b - c));
z<float a = 10.0;
float b = 2.5;
float c = a*a + 2*a*b + b*b;
zfloat a = 10.0 / 2.5;
zint a = 100 / 4;
zint a = 20 - 100 / 4 * 5 + 10;
z#int a = (20 - 100) / 4 * (5 + 10);
z%int a = 4;
int b = 2;
float c = b/a;
zAint a = 2;
int d = 5;
int n = 10;
int s = (a/2)*(2*a + (n-1)*d);
zint a = 1 % 2;
zint a = 2;
int b = a % 3;
z'int a = 100;
int b = 3;
int c = a % b;
zOint a = 100;
int b = 3;
int mod = 1000000007;
int c = (a + b * (100/a)) % mod;
ztint a = 100;
int b = 3;
int mod = 1000000007;
int c = ((a % mod + b % mod) % mod *(a % mod - b % mod) % mod) % mod;
zbool a = 1 == 2, b = 1 != 2;z2bool a = 1 < 2, b = 1 <= 2, c = 1 > 2, d = 1 >= 2;zĄint a = 1, b = 2;
bool c1 = a == 1;
bool c2 = b == 2;
bool c3 = 1 != a;
bool c4 = 1 != b;
bool c5 = a < 0;
bool c6 = b <= 10;
bool c7 = a > 0;
bool c8 = b >= 11;z{int a = 3, b = 4;
bool c1 = a == b;
bool c2 = a != b;
bool c3 = a < b;
bool c4 = a <= b;
bool c5 = a > b;
bool c6 = a >= b;zjfloat a = 1.25, b = 2.5;
bool c1 = a == 1.25;
bool c2 = b == 2.54;
bool c3 = 1.2 != a;
bool c4 = 1.5 != b;zfloat a = 1.25, b = 2.5;
bool c1 = a == b;
bool c2 = a != b;
bool c3 = a < b;
bool c4 = a <= b;
bool c5 = a > b;
bool c6 = a >= b;zbool c1 = true == true;
bool c2 = true == false;
bool c3 = false == false;
bool c4 = true != true;
bool c5 = true != false;
bool c6 = false != false;zbool c1 = true && true;
bool c2 = true && false;
bool c3 = false && false;
bool c4 = true || true;
bool c5 = true || false;
bool c6 = false || false;zebool a = false;
bool c1 = a && true;
bool c2 = false && a;
bool c3 = true || a;
bool c4 = a || false;zRint a = 1;
bool c1 = a && 1;
bool c2 = a && 0;
bool c3 = a || 1;
bool c4 = 0 || a;zint a = 1, b = 0;
bool c = false, d = true;
bool c1 = a && b;
bool c2 = a && c;
bool c3 = c && d;
bool c4 = a || b;
bool c5 = a || c;
bool c6 = c || d;zchar a = 'b';zint a[] = {10, 20};r5   r   r;   r7   r   rD   r:   r6   r<   r=   r>   r?   r@   r   rJ   rK   z20.0éS   ií˙˙rB   rM   rd   r   r   rZ   Útempr   rc   re   r]   rf   r   rG   rg   z10.0rw   r    r   rĄ   r˘   rŁ   ra   r¤   rĽ   r~   rŚ   r§   r¨   rŠ   rŞ   rh   rŤ   rŹ   é	   r­   ry   rv   z2.54rŽ   z1.5c                      s
   t  dS rŻ   r   rZ   r°   rZ   r[   r˛     rł   ztest_var_decl.<locals>.<lambda>c                      s
   t  dS rŻ   r   rZ   r´   rZ   r[   r˛     rł   )!r   rO   r   r   r1   r   r	   r   rP   r#   r   r   r$   r&   r   r   r   r   r'   r%   r   r2   r3   r,   r-   r(   r)   r*   r+   r.   r0   r   rš   )@rR   rS   rT   rU   rk   rl   rş   rť   rź   r˝   rž   rż   rŔ   rÁ   rÂ   rĂ   rÄ   rĹ   rĆ   rÇ   rČ   rÉ   rĘ   rË   rĚ   rÍ   rÎ   rĎ   rĐ   rŃ   Zc_src31Zc_src32rV   rW   rX   rY   rp   rq   rŇ   rÓ   rÔ   rŐ   rÖ   r×   rŘ   rŮ   rÚ   rŰ   rÜ   rÝ   rŢ   rß   rŕ   rá   râ   ră   rä   rĺ   rć   rç   rč   ré   Zres31Zres32rZ   Šrą   rľ   r[   Útest_var_declü  sě   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙	˙˙˙˙˙˙˙˙˙˙˙˙˙
ţ˙
ţ˙
ţ˙
ţţ	ü
ů˙ü
ţů˙
ţ˙
ţ˙
ţ˙
ţ˙
ţţţ˙
ţ˙
ţţ˙

ţúţ˙
ţ˙
ţ˙
ţ˙
ţ
ţéü"
ţ˙
ţ˙
ţ˙
ýţ˙
ţţúţýţëţ˙ 
ţýý÷ţ˙
ţţüů÷ţ˙ü
ů˙ü
ů˙üţýţöů˙ü
ů˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙üţűů˙
ţ˙
ţ˙
ţ˙
ţţţűýţ˙
ţ˙
ţ˙
ţţ˙

ţ˙
ţ˙
ţţ˙

ţ˙
ţ˙
ţ˙
ţúţôţ˙
ţ˙
ţ˙
ţ˙
ţţţřňţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţţ˙

ţţ˙

ţţ˙

ţţ˙

˙ţ˙	
ţţ˙

ţţ˙

ţţ˙

ţ˙
ţ˙
ţţ	
ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙
ü
ů˙ü
ů˙

ţţ˙


ţţ˙


ţţ˙


ţţ˙
ü
ů˙ü
ů˙
ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙
rď   c                  C   sŢ  d} d}t | d Ą }t |d Ą }|d tttdttdtddksRt|d tttd	ttdtd
dkst|d tttdttdtddksŽt|d tttd	ttdtddksÜt|d tttdttdtddkst|d tttdttdtddks<t|d tttdttdt	tdtddksvt|d tttdttdt	tdt
td	tdt
tdtdttdtddksÚtd S )Nz int a = (1);int b = (1 + 2 * 3);zPint a = 1, b = 2, c = 3;int d = (a);int e = (a + 1);int f = (a + b * c - d / e);r5   r   r6   r7   r:   rD   r;   rh   rB   rM   rc   rd   re   r]   rf   r   )r   rO   r   r   r1   r   r	   r   rP   r#   r$   r&   ŠrR   rS   rV   rW   rZ   rZ   r[   Útest_paren_expr  s    ˙˙
ţ˙

ţ˙

ţ˙

ţ˙

ţ˙
ţ˙
ţţ˙

ţţýúţ˙rń   c                     sn  d} d}d dt | d Ą }t |d Ą }|d tt tddttttd	t	td
t
ddtttdt	td
t
ddttd	ttdttd	ttddks¸t|d tt tddttttd	t	td
t
ddtttdt	td
t
ddtttdt	td
t
ddtttdt	td
ttd	dtttdt	td
ttddtttdt	td
ttd	dtttdt	td
ttddtttdttdtdtttdttdttddtttdttdtdtttdttdtddksFttt fdd ttfdd d S )Nz:void func(){
int a = 10;
int b = 20;
++a;
--b;
a++;
b--;
}z¤void func(){
int a = 10;
int b = -100;
int c = +19;
int d = ++a;
int e = --b;
int f = a++;
int g = b--;
bool h = !false;
bool i = !d;
bool j = !0;
bool k = !10.0;
}z&void func(){
int a = 10;
int b = ~a;
}z'void func(){
int a = 10;
int b = *&a;
}r5   r   r   rZ   r6   r7   r   rD   r;   r   r   i˙˙˙é   rc   re   rf   rg   ri   r~   r   ÚjÚkc                      s
   t  dS rŻ   r   rZ   r°   rZ   r[   r˛     rł   z&test_unary_operators.<locals>.<lambda>c                      s
   t  dS rŻ   r   rZ   r´   rZ   r[   r˛     rł   )r   rO   r   r   r	   r   r   r   r1   r   r   r!   r   r"   r    rP   r   r3   r/   r2   r   rš   rđ   rZ   rî   r[   Útest_unary_operatorső  sŘ    ˙˙˙	˙
ţ˙
ţ˙



đü
ţ˙
ţ˙
ţ˙

ţ˙

ţ˙

ţ˙

ţ˙
ţ˙

ţ˙
ţ˙
ţ˙ĂüJrő   c                  C   sž   d} t | d Ą }|d tt tddttttdt	tdt
dd	tttdt
d
tttdt
d
tttdt
d
tttdt
d
tttdt
d
dksştd S )NzHvoid func(){
int a = 100;
a += 10;
a -= 10;
a *= 10;
a /= 10;
a %= 10;
}r5   r   r   rZ   r6   r7   r   rD   r   r   )r   rO   r   r   r	   r   r   r   r1   r   r   r   r   r   r   r   rP   )Zc_srcÚresrZ   rZ   r[   Ú!test_compound_assignment_operator  sJ    ˙
ý˙
ţ
ţ
ţ
ţ
ţčür÷   c            
      C   s\  d} d}d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }	|d tt tdd	ttttd
t	tdt
ddtttd
t
dtttd
ddksÂt|d |d ksÖt|d tt tdd	ttttd
t	tdt
ddtttdt	tdt
ddtttd
t
dtttd
ttdddksjt|d tt	tdtdttdt	tddfttttdt	tdt
ddtttdt
dttttdttdt
dtttdt
ddtddkst|	d tt tdd	ttt
dtt ddksXtd S )Nz/void func(){
int i = 0;
while(i < 10)
{
i++;
}}z,void func(){
int i = 0;
while(i < 10)
i++;
}zDvoid func(){
int i = 10;
int cnt = 0;
while(i > 0)
{
i--;
cnt++;
}
}z[int digit_sum(int n){
int sum = 0;
while(n > 0)
{
sum += (n % 10);
n /= 10;
}
return sum;
}zvoid func(){
while(1);
}r5   r   r   rZ   r   r7   rD   r   )r   r   ZcntZ	digit_sumrŁ   r8   Úsumr:   )r   rO   r   r   r	   r   r   r   r1   r   r   r   r(   r"   rP   r*   r    r   r%   r   r
   r   rZ   rZ   r[   Útest_while_stmtż  s   ˙˙
˙˙˙
ţ˙ţ˙˙űůü
ý˙
ý˙ţ˙˙üűńü$

ţ˙
ý˙ţ˙ţü	˙üöűá÷,˙ţ˙ürů   c                      s0   ddl m  tt fdd ttdd  d S )Nr   ŠÚCCodeConverterc                      s     S )NrZ   rZ   rú   rZ   r[   r˛   x  rł   ztest_raise.<locals>.<lambda>c                   S   s   t dddS )Nú r5   )Úmoder   rZ   rZ   rZ   r[   r˛   y  rł   )Zsympy.parsing.c.c_parserrű   r   ÚImportErrorrZ   rZ   rú   r[   Ú
test_raisev  s    r˙   )IZsympy.parsing.sym_exprr   Zsympy.testing.pytestr   r   Zsympy.externalr   ZcinZsympy.codegen.astr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.codegen.cnodesr   r    r!   r"   Z
sympy.corer#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   Zsympy.logic.boolalgr.   r/   r0   Zsympy.core.symbolr1   r2   r3   r   r\   ru   r}   r   r   r   r   r   rę   rď   rń   rő   r÷   rů   r˙   rZ   rZ   rZ   r[   Ú<module>   s   d4 
   _
 a
Ta{  !6              +
           )Z 3
 8