
    \h                         S SK Jr  S SKJr  S SKJrJrJrJrJ	r	J
r
  S SKJrJrJrJrJrJrJrJrJrJrJr  \" S5      u  rrS rS rS rS	 rS
 rS rS rS r S r!S r"g)    )symbols)ccode)DeclarationVariablefloat64int64String	CodeBlock)alignofCommaOperatorgotoLabelPreDecrementPostDecrementPreIncrementPostIncrementsizeofunionstructzx yc                      [        [        5      n [        U 5      S:X  d   eU R                  " U R                  6 U :X  d   eg )Nz
alignof(x))r   xr   funcargs)axs    W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/codegen/tests/test_cnodes.pytest_alignofr      s8    	B9$$$77BGG"""    c                      [        [        [        5      S[        -  5      n [        U 5      S:X  d   eU R                  " U R
                  6 U :X  d   eg )N   z(++(x), 2*x))r   r   r   r   r   r   )exprs    r   test_CommaOperatorr!      sC    a!A#.D;.(((99dii D(((r   c                     Sn [        U 5      nUR                  " UR                  6 U:X  d   eU[        S5      :w  d   e[        U5      S:X  d   e[	        U 5      n[        U5      S:X  d   eU[	        S5      :X  d   eU[	        S5      :w  d   e[        [        5      /n[	        X5      nUR                  [        S5      :X  d   eUR                  [        [        [        5      5      :X  d   e[        U5      S:X  d   e[        [        5      [        [        5      /n[	        X5      nUR                  [        S5      :X  d   eUR                  [        [        [        5      [        [        5      5      :X  d   e[        U5      S:X  d   eg )N
early_exitfoobarzgoto early_exitzearly_exit:zearly_exit:
++(x);z#early_exit:
{
   ++(x);
   --(y);
})r   r   r   r   r   r   r   namer	   bodyr
   r   y)sgl1r&   l2s        r   test_goto_Labelr,      sa   AQA66166?aX8((((	qB9%%%|$$$$x   OD	qB77f\****77iQ00009     O\!_-D	qB77f\****77iQaAAAA9 % & & &r   c                      [        [        5      n U R                  " U R                  6 U :X  d   e[	        U 5      S:X  d   eg )Nz--(x))r   r   r   r   r   ps    r   test_PreDecrementr0   3   7    QA66166?a8wr   c                      [        [        5      n U R                  " U R                  6 U :X  d   e[	        U 5      S:X  d   eg )Nz(x)--)r   r   r   r   r   r.   s    r   test_PostDecrementr3   9   8    aA66166?a8wr   c                      [        [        5      n U R                  " U R                  6 U :X  d   e[	        U 5      S:X  d   eg )Nz++(x))r   r   r   r   r   r.   s    r   test_PreIncrementr6   ?   r1   r   c                      [        [        5      n U R                  " U R                  6 U :X  d   e[	        U 5      S:X  d   eg )Nz(x)++)r   r   r   r   r   r.   s    r   test_PostIncrementr8   E   r4   r   c                      Sn [        U 5      n[        U5      SU -  :X  d   eUR                  " UR                  6 U:X  d   eUR                  (       a   eUR                  5       [        S5      [        S5      1:X  d   eg )Nzunsigned intz
sizeof(%s)r   )r   r   r   r   is_Atomatomsr	   )typenameszs     r   test_sizeofr>   K   sr    H		B9x////77BGG"""zz>88:&0&2BCCCCr   c                     [        [        [        S9[        [        [        S9p[	        SX/5      nUR
                  " UR                  6 U:X  d   eU[	        SX45      :X  d   eU[	        SX45      :w  d   e[        UR                  5      S:X  d   e[        UR                  5      S:X  d   e[        S UR                   5       5      (       d   e[        U5      S:X  d   eg )Ntypevec2r   c              3   B   #    U  H  n[        U[        5      v   M     g 7fN
isinstancer   .0args     r   	<genexpr>test_struct.<locals>.<genexpr>\        F~z#{++~   z)struct vec2 {
   double x;
   double y;
})r   r   r   r'   r   r   r   strr%   lendeclarationsallr   )vxvyr(   s      r   test_structrT   T   s    ag&(Avx A66166?avx((((vx((((qvv;&   q~~!###Fq~~FFFFF8	  r   c                     [        [        [        S9[        [        [        S9p[        SX/5      nUR                  " UR                  6 U:X  d   eU[        SX45      :X  d   e[        UR                  5      S:X  d   e[        UR                  5      S:X  d   e[        S UR                   5       5      (       d   e[        U5      S:X  d   eg )Nr@   dualuser   c              3   B   #    U  H  n[        U[        5      v   M     g 7frD   rE   rG   s     r   rJ   test_union.<locals>.<genexpr>k   rL   rM   z,union dualuse {
   double x;
   int64_t y;
})r   r   r   r'   r   r   r   r   rN   r%   rO   rP   rQ   r   )rR   rS   us      r   
test_unionrZ   d   s    ag&(?i""A66166?ai"****qvv;)###q~~!###Fq~~FFFFF8	  r   N)#sympy.core.symbolr   sympy.printing.codeprinterr   sympy.codegen.astr   r   r   r   r	   r
   sympy.codegen.cnodesr   r   r   r   r   r   r   r   r   r   r   r   r'   r   r!   r,   r0   r3   r6   r8   r>   rT   rZ    r   r   <module>r`      sg    % , V V   
 u~1#)&6D r   