
    \hT              	          S SK r S SKJr  S SKJrJrJrJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJr  S SK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%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r1J2r3J4r5J6r7J8r9J:r;J<r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrN  \" S5      u	  rOrPrQrRrSrTrUrVrW\" SSS9rX\" SSS5      rY\" / SQ5      rZ\" S5      r[\" S\X5      r\\" SSS5      r]\" SSS5      r^S r_S r`S raS rbS rcS rdS  reS! rfS" rgS# rhS$ riS% rjS& rkS' rlS( rmS) rnS* roS+ rpS, rqS- rrS. rsS/ rtS0 ruS1 rvS2 rwS3 rxS4 ryS5 rzS6 r{S7 r|S8 r}g)9    N)Tuple)nanooFloatInteger)Lt)symbolsSymbol)sin)Matrix)MatrixSymbol)Range)IdxIndexedBase)raises)-
Assignment	Attribute
aug_assign	CodeBlockForTypeVariablePointerDeclarationAddAugmentedAssignmentSubAugmentedAssignmentMulAugmentedAssignmentDivAugmentedAssignmentModAugmentedAssignmentvalue_constpointer_constintegerrealcomplex_int8uint8float16float32float64float80float128	complex64
complex128WhileScopeStringPrintQuotedStringFunctionPrototypeFunctionDefinitionReturnFunctionCalluntypedIntBaseTypeintcNodenone	NoneTokenTokenCommentzx, y, z, t, x0, x1, x2, a, bnTr"   A      )rC      rB   BiA22rD   B22c                  N   [        [        [        5        [        [        S5        [        [        [        5        [        [        S   S5        [        [        S   [        5        [        [
        [           [        5        [        [
        [           S5        [        [        [        5      n U R                  " U R                  6 U :X  d   eU R                  S:X  d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S	 5        [        [        S
 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        g )Nr   rC   r   z:=c                  8    [        [        [           [        5      $ N)r   rE   rF   rA        T/var/www/auris/envauris/lib/python3.13/site-packages/sympy/codegen/tests/test_ast.py<lambda>!test_Assignment.<locals>.<lambda>0   s    z!A$2rN   c                  8    [        [        [           [        5      $ rL   )r   rE   rF   matrM   rN   rO   rP   rQ   1   s    z!A$4rN   c                  *    [        [        [        5      $ rL   )r   xrS   rM   rN   rO   rP   rQ   2   s    z!S1rN   c                  *    [        [        [        5      $ rL   )r   rU   rA   rM   rN   rO   rP   rQ   3       z!Q/rN   c                  0    [        [        S   [        5      $ )NrJ   r   rA   rS   rM   rN   rO   rP   rQ   4   s    z!C&#6rN   c                  *    [        [        [        5      $ rL   )r   rA   rU   rM   rN   rO   rP   rQ   6   rW   rN   c                  "    [        [        S5      $ Nr   )r   rA   rM   rN   rO   rP   rQ   7   s    z!Q/rN   c                  *    [        [        [        5      $ rL   )r   rS   rA   rM   rN   rO   rP   rQ   9   s    ja0rN   c                  "    [        S[        5      $ r\   r   rU   rM   rN   rO   rP   rQ   :   s    jA.rN   c                  0    [        [        [        -  S5      $ NrC   r_   rM   rN   rO   rP   rQ   ;   s    j1a0rN   c                  8    [        [        [        -   [        5      $ rL   rY   rM   rN   rO   rP   rQ   <   s    jQ4rN   c                  "    [        [        S5      $ r\   )r   rE   rM   rN   rO   rP   rQ   =   s    jA.rN   )r   rU   yrA   rS   rE   rF   funcargsopr   
ValueError	TypeError)as    rO   test_Assignmentrk   "   s   q!q!q#qvqqvqqtQqtQ1aA66166?a444<< :23
:45
:12
:/0
:67
:/0
:/0
901
9./
901
945
9./rN   c                     [        [        S[        5        [        [        SS5        [        [        S[        5        [        [        S   SS5        [        [        S   S[        5        [        [
        [           S[        5        [        [
        [           SS5        S[        4S[        4S[        4S[        4S[        44 H{  u  p[        [        U [        5      nU" [        [        5      nUR                  " UR                  6 Us=:X  a  U:X  d   e   eUR                  U :X  d   eUR                  U S-   :X  a  M{   e   [!        ["        S	 5        [!        ["        S
 5        [!        ["        S 5        [!        ["        S 5        [!        ["        S 5        [!        ["        S 5        [!        ["        S 5        [!        [$        S 5        [!        [$        S 5        [!        [$        S 5        [!        [$        S 5        [!        [$        S 5        g )N+r   rJ   -*/%=c                  :    [        [        [           S[        5      $ Nrm   )r   rE   rF   rA   rM   rN   rO   rP    test_AugAssign.<locals>.<lambda>Z   s    z!A$Q7rN   c                  :    [        [        [           S[        5      $ rt   )r   rE   rF   rS   rM   rN   rO   rP   ru   [   s    z!A$S9rN   c                  ,    [        [        S[        5      $ rt   )r   rU   rS   rM   rN   rO   rP   ru   \   s    z!S#6rN   c                  ,    [        [        S[        5      $ rt   )r   rU   rA   rM   rN   rO   rP   ru   ]       z!S!4rN   c                  2    [        [        S   S[        5      $ )NrJ   rm   r   rA   rS   rM   rN   rO   rP   ru   ^   s    z!D'3<rN   c                  ,    [        [        S[        5      $ rt   )r   rA   rU   rM   rN   rO   rP   ru   `   ry   rN   c                  $    [        [        SS5      $ Nrm   r   )r   rA   rM   rN   rO   rP   ru   a   s    z!S!4rN   c                  ,    [        [        S[        5      $ rt   )r   rS   rA   rM   rN   rO   rP   ru   c   s    jc15rN   c                  $    [        SS[        5      $ )Nr   rm   r   rU   rM   rN   rO   rP   ru   d   s    jC3rN   c                  2    [        [        [        -  SS5      $ )Nrm   rC   r   rM   rN   rO   rP   ru   e   s    jQQ7rN   c                  :    [        [        [        -   S[        5      $ rt   r{   rM   rN   rO   rP   ru   f   s    jQS9rN   c                  $    [        [        SS5      $ r~   )r   rE   rM   rN   rO   rP   ru   g   s    jC3rN   )r   rU   rd   rA   rS   rE   rF   r   r   r   r   r   re   rf   binoprg   r   rh   ri   )r   clsrj   bs       rO   test_AugAssignr   @   s   q#qq#qq#sqwQqwQqtS!qtS! ()()()()()

 q%#1Ivvqvv!(q(((((ww%ttus{"""
 :78
:9:
:67
:45
:<=
:45
:45
956
934
978
99:
934rN   c            
      j   [         [        [        [        [        [
        /n [        S[        -  S-   4[        [           [        4[        [        4[        S   [        4/nU  HO  nU HF  u  p4U" X45      n[        U5      UR                  < S[        U5      < S[        U5      < S3:X  a  MF   e   MQ     g )NrD   )r   r   (z, ))r   r   r   r   r   r   rU   rd   rE   rF   rG   rH   rA   repr__name__)assignment_classespairsr   lhsrhsrj   s         rO   test_Assignment_printingr   j   s     
AEAI	
1q		c
	
4!	E "HCCA7cllDItCyQQQQ  "rN   c                  .   [        [        [        S5      [        [        [        S-   5      5      n U R                  " U R
                  6 U :X  d   eU R                  [        [        [        5      :X  d   eU R                  [        S[        S-   5      :X  d   eg ra   )	r   r   rU   rd   re   rf   left_hand_sidesr   right_hand_sidescs    rO   test_CodeBlockr      sr    *Q"Jq!a%$89A66166?aa+++q!a%000rN   c                    ^ [        [        [        [        -   5      [        [        S5      [        [        [        5      [        [        S5      /n [        [        S5      [        [        S5      [        [        [        [        -   5      [        [        [        5      /n[
        R                  " U 5      nU[        U6 :X  d   e[        [        [        [        -   5      [        [        S5      [        [        [        5      [        [        S5      /m[        [        U4S j5        [        [        [        [        -   5      [        [        [        [        -  5      [        [        [        5      [        [        [        S-   5      /n[        [        [        [        -  5      [        [        [        S-   5      [        [        [        [        -   5      [        [        [        5      /n[
        R                  " U5      nU[        U6 :X  d   eg )NrC   rD   c                  0   > [         R                  " T 5      $ rL   )r   topological_sort)invalid_assignmentss   rO   rP   1test_CodeBlock_topological_sort.<locals>.<lambda>   s    y99:MNrN   rB   )r   rU   rd   ztr   r   r   rh   rj   r   )assignmentsordered_assignmentsc1free_assignmentsfree_assignments_orderedc2r   s         @rO   test_CodeBlock_topological_sortr      sx   1a!e1a1a1a	
K 	1a1a1a!e1a
 
	#	#K	0B/0000 	1a!e1a1a1a	
 :NO 	1a!e1a!e1a1a!e	
 	1a!e1a!e1a!e1a	 
 
	#	#$4	5B45555rN   c            
         [        [        [        [        [        -   5      [        [        S5      [        [
        [        5      [        [        S5      5      n U R                  [        5       :X  d   e[        [        [        [        [        -   5      [        [        [        [        -  5      [        [
        [        5      [        [        [        S-   5      5      nUR                  [        [        1:X  d   eg )NrC   rD   rB   )
r   r   rU   rd   r   r   free_symbolssetrj   r   r   r   s     rO   test_CodeBlock_free_symbolsr      s    	1a!e1a1a1a	

B ??ce###	1a!e1a!e1a1a!e	
B ??q!f$$$rN   c                     [        [        [        S5      [        [        [	        [        5      5      [        [
        [	        [        5      5      [        [        [        [
        -  5      5      n U R                  5       [        [        [        S5      [        [        [	        [        5      5      [        [        [        5      [        [
        [        5      [        [        [        [
        -  5      5      :X  d   e[        [        S 5        [        [        [        [	        [        5      S-   5      [        [        S[	        [        5      -  5      [        [
        [        [        -  5      5      nUR                  5       [        [        [        [	        [        5      5      [        [        [        S-   5      [        [        S[        -  5      [        [
        [        [        -  5      5      :X  d   eg )NrC   c                      [        [        [        S5      [        [        S5      [        [        S5      5      R	                  5       $ )NrC   rD   )r   r   rU   rd   cserM   rN   rO   rP   $test_CodeBlock_cse.<locals>.<lambda>   s4    	1a1a*Q*) 
ce)rN   rD   )r   r   rd   rU   r   r   r   r   x0r   NotImplementedErrorx1x2r   s     rO   test_CodeBlock_cser      sD   	1a1c!f1c!f1ac	

B 668y1a2s1v1b1b1ac     !  
2s1vz"2q3q6z"1a!e

B
 668y2s1v2rAv2q2v1a!e	
 
 
 
rN   c                  ,   [        [        [        [        [        [        [        5      /SS//5      5      [        [        [        [        [        5      S[        [        5      -  /[        [        5      S-  S//5      5      5      n U R                  5       [        [        [        [        [        5      5      [        [        [        [        [        /SS//5      5      [        [        [        [        S[        -  /[        S-  S//5      5      5      :X  d   eg )NrB      rD      )
r   r   rG   r   rU   r   rd   rH   r   r   r   s    rO   test_CodeBlock_cse__issue_14118r      s    3CFQF3453Q3q6 2SVQYNCDE	A 557i2s1v3BA/013QrT
RUAJ789   rN   c            
      p   [        [        [        SS5      [        [        [        S4   [
        [        -   5      [        [
        S[        5      45      n [        [        S[        [        [        S4   [
        [        -   5      45      n U R                  " U R                  6 U :X  d   e[        [        S 5        g )Nr   rB   rm   )rC   rD   rB   r      c                  D    [        [        [        [        [        -   45      $ rL   )r   r?   rU   rd   rM   rN   rO   rP   test_For.<locals>.<lambda>   s    c!QQ1rN   )r   r?   r   r   rA   rU   r   rd   re   rf   r   ri   )fs    rO   test_Forr      s    AuQ{Z!Q$Q7AsA9NOPAAAadGQU!; =>A66166?a
912rN   c                  ,   [         R                  (       d   e[         [         :X  d   e " S S[        5      n U " 5       nU[         :w  d   e[         S :X  d   e[         [        5       :X  d   e[         R                  " [         R
                  6 [         :X  d   eg )Nc                       \ rS rSrSrg)test_none.<locals>.Foo   rM   Nr   
__module____qualname____firstlineno____static_attributes__rM   rN   rO   Foor          rN   r   )r;   is_Atomr=   r<   re   rf   )r   foos     rO   	test_noner      sp    <<<4<<e 
%C$;;4<<9;99dii D(((rN   c                     [        S5      n U R                  (       d   eU [        S5      :X  d   eU R                  S:X  d   eU R                  " S0 U R	                  5       D6U :X  d   eU R                  " U R
                  6 U :X  d   e " S S[         5      nU" S5      nX :w  d   eUR                  U R                  :X  d   e[        S5      n[        U5      S:X  d   e[        U5      S:X  d   eg )Nfoobarc                       \ rS rSrSrg)test_String.<locals>.Signifieri  rM   Nr   rM   rN   rO   	Signifierr     r   rN   r   r   zString('foo')rM   )r0   r   textre   kwargsrf   strr   )str   siss       rO   test_Stringr     s    		B:::!!!!77h77!RYY[!R'''77BGG"""F  
8	B8O877bgguAq6U??7o%%%rN   c                  `    [        S5      n U R                  S:X  d   e[        U 5      S:X  d   eg )Nr   )r>   r   r   r   s    rO   test_Commentr     s0    A66Xq6XrN   c                  v    [        5       n U [        5       :X  d   eU R                  " U R                  6 U :X  d   eg rL   )r:   re   rf   )r?   s    rO   	test_Noder      s1    A;;66166?arN   c                     [        S5      n [        U R                  5      S:X  d   eU R                  [	        S5      :X  d   e[        U 5      S:X  d   e[        U 5      S:X  d   e[        U 5      U :X  d   eU R                  " U R                  6 U :X  d   e[        S5      n[        S5      nX:w  d   eX:X  a  X":X  d   e[        S5      nX:X  d   eX#:w  d   eg )NMyTyperC   zType(String('MyType'))t1t2)r   lenrf   namer0   r   r   re   )r   r   r   t1bs       rO   	test_Typer   &  s    XAqvv;!66VH%%%%q6X7....7a<<66166?a	dB	dB8O88  
t*C9999rN   c                     [         R                  " [        5      [        :X  d   e[	        SSS9n [         R                  " U 5      [
        :X  d   e[         R                  " [        5      [        :X  d   e[         R                  " S5      [        :X  d   e[         R                  " S5      [
        :X  d   e[         R                  " S5      [        :X  d   e[        [        S 5        g )NuTr#   rB         @      @      ?c                  6    [         R                  " [        5      $ rL   )r   	from_exprsumrM   rN   rO   rP   &test_Type__from_expr.<locals>.<lambda>?  s    t~~c2rN   )
r   r   rF   r"   r	   r#   r?   r$   r   rh   )r   s    rO   test_Type__from_exprr   7  s    >>!'''$A>>!$$$>>!'''>>!'''>>#$&&&>>$8+++
:23rN   c                  Z   [        [        S 5        [        R                  " S5      S:X  d   e[        R                  " [	        S5      5      S:X  d   e[        R                  " [	        S5      5      S:X  d   e[
        R                  " S5      S:X  d   e[        [        S 5        [
        R                  " S	5      S	:X  d   e[        [        S
 5        [        R                  " S5      S:X  d   e[        R                  " S5      S:X  d   e[        [        S 5        [        [        S 5        g )Nc                  .    [         R                  " S5      $ )N      @)r"   
cast_checkrM   rN   rO   rP   1test_Type__cast_check__integers.<locals>.<lambda>D  s    w11#6rN   3rB   z3.0000000000000000000z3.0000000000000000001g     _@   c                  .    [         R                  " S5      $ )N   r%   r   rM   rN   rO   rP   r   K  s    ts3rN   ic                  .    [         R                  " S5      $ )Nir   rM   rN   rO   rP   r   M  s    tt4rN   r   r   c                  .    [         R                  " S5      $ )Ng      p@r&   r   rM   rN   rO   rP   r   Q  s    u//6rN   c                  .    [         R                  " S5      $ )Nr   rM   rN   rO   rP   r   R  s    u//3rN   )r   rh   r"   r   r   r%   r&   rM   rN   rO   test_Type__cast_check__integersr   B  s    
:67c"a'''e$;<=BBBe$;<=BBB ??5!S(((
:34??4 D(((
:45A!###C C'''
:67
:34rN   c                      [        S5      n U [        S5      :X  d   e[        SS/5      n[        SS/5      nX:w  d   eUR                  " UR                  6 U:X  d   eg )Nnoexceptalignas       )r   re   rf   )r   	alignas16	alignas32s      rO   test_Attributer  T  sb    $Hy,,,,)bT*I)bT*I!!!>>9>>*i777rN   c                     [        [        [        S9n U [        U 5      :X  d   eU [        S[        S9:X  d   eU R                  [        :X  d   eU R                  [        :X  d   e[
        U R                  ;  d   eU R                  " U R                  6 U :X  d   e[        U 5      S:X  d   e[        [        [        [
        1S9nUR                  [        :X  d   eUR                  [        :X  d   e[
        UR                  ;   d   eUR                  " UR                  6 U:X  d   e[        [        [        R                  " [        5      S9nUR                  [        :X  d   eUR                  " UR                  6 U:X  d   e[        [         [        R                  " [        5      S9nUR                  [        :X  d   eX2:w  d   e[         R"                  " [         5      nUR                  [        :X  d   e[         R"                  " [%        SSS95      R                  [        :X  d   eUR                  " UR                  6 U:X  d   e[         R"                  " [        SSS	9nUR                  " UR                  6 U:X  d   e['        UR(                  S-
  5      S
:  d   e[+        [,        S 5        [         R"                  " [        5      nUR                  [        :X  d   e[        U5      S:X  d   e[         R"                  " [.        SS9R                  [        :X  d   e[         R"                  " [.        SS9R                  [        :X  d   e[         R"                  " [.        SS9R                  [0        :X  d   eg )NtyperU   zVariable(x, type=real))attrsTr   r   Fvaluer   gV瞯<c                  6    [         R                  " [        SSS9$ )Nr   Tr  )r   deducedr?   rM   rN   rO   rP   test_Variable.<locals>.<lambda>|  s    x//NrN   zVariable(n, type=integer)rB   )r  r   r   )r   rU   r#   symbolr	  r    r
  re   rf   r   rd   f32r?   r   r   r"   rF   r  r
   absr  r   rh   r   r$   )vwv_nv_ia_iv_n2v_n3s          rO   test_Variabler  ]  s   A4((((88q==66T>>agg%%%66166?aq6----C}-A88q==66S==!''!!!66166?a
14>>!,
-C88w88SXX#%%%
14>>!,
-C88w::


1
C88wF3T2388D@@@88SXX#%%%ASU;D99dii D(((tzzC 5(((
:NOAD99t93333AQ',,777AS)..$666AV,11X===rN   c                     [        [        5      n U R                  [        :X  d   eU R                  [        :X  d   e[
        U R                  ;  d   e[        U R                  ;  d   eU R                  " U R                  6 U :X  d   e[        SSS9n[        U[        R                  " U5      [
        [        1S9nUR                  UL d   eUR                  [        :X  d   e[
        UR                  ;   d   e[        UR                  ;   d   eUR                  " UR                  6 U:X  d   e[        SSS9nX#   nUR                  U4:X  d   eg )Nr   Tr   )r	  r
  rF   r@   )r   rU   r  r	  r7   r    r
  r!   re   rf   r	   r   r   r#   indices)pr   purF   derefs        rO   test_Pointerr     s   
A88q==66Wagg%%%'''66166?a$A	*;2N	OB99>>77d??"(("""BHH$$$77BGG"""T"AEE==QD   rN   c                    ^ [        SSS9n [        U [        R                  " U 5      S9n[	        U5      R
                  R                  [        :X  d   e[        [        [        R                  " [        5      S9n[	        U5      R
                  R                  [        :X  d   e[        U [        R                  " U 5      S[        1S9n[        UR                  ;   d   e[        UR                  ;  d   e[	        U5      nUR
                  U:X  d   e[        UR
                  R                  [        5      (       d   eUR
                  R                  S:X  d   eUR                   " UR"                  6 U:X  d   eUR%                  5       U:X  d   eUR%                  S S S9[	        U5      :X  d   e[        [&        [        SS9n[	        U5      nUR
                  U:X  d   eUR
                  R                  [)        S5      :X  d   e[        [*        [        R                  " [*        5      SS9m[	        T5      nUR
                  R                  [        :X  d   eUR
                  R                  S:X  d   e[-        [.        U4S	 j5        g )
Nr   Tr   r  r   )r  r
  rB   )r	  r  c                     > [        T S5      $ )N*   )r   )vis   rO   rP   "test_Declaration.<locals>.<lambda>  s    {2r2rN   )r	   r   r   r   r   variabler	  r#   r?   r"   r    r
  r!   
isinstancer  r   re   rf   as_Declarationrd   r   rF   r   rh   )	r   vuvnvucdeclvydecl2decl3r$  s	           @rO   test_Declarationr0    s   $A	!$..+	,Br?##((D000	!$..+	,Br?##((G333 1dnnQ's;-
HC#))###		)))sD==Cdmm))51111==#%%%99dii D(((4'''D5RHHH	!'	+BOE>>R>>71:---	!$..+3	7BOE>>')))>>3&&&
:23rN   c                      [         R                  [        S5      :X  d   e[         R                  [         R                  4:X  d   e[	        [        S5      R                  5      S:X  d   eg )Nr9   rj   )r9   r   r0   rf   r   r8   rM   rN   rO   test_IntBaseTyper2    sN    99v&&&99$$${3$$%,,,rN   c                  ~   [         R                  S:X  d   e[        R                  S:X  d   e[        R                  S:X  d   e[        R                  S:X  d   e[
        R                  S:X  d   e[         R                  S:X  d   e[        R                  S:X  d   e[        R                  S:X  d   e[        R                  S	:X  d   e[
        R                  S
:X  d   e[         R                  S:X  d   e[        R                  S:X  d   e[        R                  S:X  d   e[        R                  S:X  d   e[
        R                  S:X  d   e[         R                  S:X  d   e[        R                  S:X  d   e[        R                  S:X  d   e[        R                  S:X  d   e[
        R                  S:X  d   e[        [         R                  [        SSS9-  S-
  5      SS[         R                  * -  -  :  d   e[        [        R                  [        SSS9-  S-
  5      SS[        R                  * -  -  :  d   e[        [        R                  [        SSS9-  S-
  5      SS[        R                  * -  -  :  d   e[        [        R                  [        SSS9-  S-
  5      SS[        R                  * -  -  :  d   e[        [
        R                  [        SSS9-  S-
  5      SS[
        R                  * -  -  :  d   e[        [         R                  [        SSS9-  S-
  5      SS[         R                  * -  -  :  d   e[        [        R                  [        S SS9-  S-
  5      SS[        R                  * -  -  :  d   e[        [        R                  [        S!SS9-  S-
  5      SS[        R                  * -  -  :  d   e[        [        R                  [        S"SS9-  S-
  5      SS[        R                  * -  -  :  d   e[        [
        R                  [        S#SS9-  S-
  5      SS[
        R                  * -  -  :  d   e[        [         R                  [        S$SS9-  S-
  5      SS[         R                  * -  -  :  d   e[        [        R                  [        S%SS9-  S-
  5      SS[        R                  * -  -  :  d   e[        [        R                  [        S&SS9-  S-
  5      SS[        R                  * -  -  :  d   e[        [        R                  [        S'SS9-  S-
  5      SS[        R                  * -  -  :  d   e[        [
        R                  [        S(SS9-  S-
  5      SS[
        R                  * -  -  :  d   e[        R                  " S)5      [        S)S5      :X  d   e[        [        R                  " S*5      S*-
  5      S+:  d   e[        [        R                  " S5      [        [         45      (       d   e[        R"                  " [$        5      [!        S,5      :X  d   e[        R"                  " [$        * 5      [!        S-5      :X  d   e[        R"                  " [!        [$        5      5      [!        S,5      :X  d   e[        R"                  " [!        [$        * 5      5      [!        S-5      :X  d   e[&        R(                  " [        R"                  " [*        5      5      (       d   e[        [        :w  d   e[        [        R,                  " [        R.                  6 :X  d   eg ).NrB            !   r   	         $   r  r   i   i @  iiiiz
0.00097656	precisionrC   g?
   z1.1920929e-07r  z2.2204460492503131e-16@   z1.08420217248550443401e-19P   z* 1.92592994438723585305597794258492732e-3465504z3.40282347e+38z1.79769313486231571e+308z1.18973149535723176502e+4932z+1.18973149535723176508575932662800702e+4932z
6.1035e-05z1.17549435e-38z2.22507385850720138e-308z3.36210314311209350626e-4932z*3.3621031431120935062626778173217526e-4932g      ?g@gq7K<infz-inf)f16digr  f64f80f128decimal_digmax_exponentmin_exponentr  epsr   maxtinyr   r'  floatcast_nocheckr   mathisnanr   re   rf   rM   rN   rO   test_FloatTyperR    s(   77a<<77a<<77b==77b==88r>>??a??a??b   ??b   r!!!r!!!s"""t###u$$$%%%s"""t###u$$$v%%%&&&sww|r::Q>?#b377(lBRRRRsww"==ABScggXEUUUUsww72FFJKcRTWZW^W^V^R^N^^^^sww;rJJQNORUVX[^[b[bZbVbRbbbbtxx% LX[\\_``adghjmqmumuluhuduuuuswww"559:RSWWH_LLLsww/2>>BCc"swwh,FVVVVsww9RHH1LMPSTVY\Y`Y`X`T`P````sww=LLqPQTWXZ]`]d]d\dXdTddddtxx% MY\]]`aabehiknrnvnvmvivevvvv sxx%;;a?@3rCGG8|CSSSSsxx% 0B??!CDs2PSPWPWx<GWWWWsxx% :bIIAMNQTUWZ]ZaZaYaUaQaaaasxx% >"MMPQQRUXY[^a^e^e]eYeUeeeetyy5!MY\]]`aabehiknrnvnvmvivevvvv>>#%R.000s~~c"S()E111cnnQ'%8888B5<///RC E&M111E"I&%,666E2#J'5=888::c&&s+,,,,#::#((CHH%%%%rN   c                    ^ [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        S[        R                  " S5      -
  S-
  5      S:  d   e[        S[        R                  " S5      -
  S	-
  5      S
:  d   e[        S5      n [        U [        R                  " U 5      -
  S-
  5      S:  d   e[        R                  " [        SSS95        [        [        S 5        Sm[        [        U4S j5        [        [        [        T5      SS9[        R                  " T5      -
  5      TS-  :  d   e[        [        R                  " S5      S-
  5      S:  d   eg )Nc                  .    [         R                  " S5      $ )Ng8-	<^@r  r   rM   rN   rO   rP   7test_Type__cast_check__floating_point.<locals>.<lambda>      s~~l;rN   c                  .    [         R                  " S5      $ )Ngƽ(@rU  rM   rN   rO   rP   rV     rW  rN   c                  .    [         R                  " S5      $ )NgҗC?rU  rM   rN   rO   rP   rV    rW  rN   c                  .    [         R                  " S5      $ )Ng&T9ݚ?rU  rM   rN   rO   rP   rV    rW  rN   g"<^@x{;Nj>:0yE>g_^e7ݚ?gdy=gdy=0.123456789012345670499^<h"<ҶOɃ;z0.12345678901234567890103X   r<  c                  >    [         R                  " [        SSS95      $ )Nz0.12345678901234567890149r`  r<  )rF  r   r   rM   rN   rO   rP   rV  
  s    s~~e4O[].^_rN   g@c                  0   > [         R                  " T 5      $ rL   rU  )v10s   rO   rP   rV    s    s~~c2rN   H   gؗҜ<il       rC   )	r   rh   r  r  r   r   rE  rF  r   )dcm21rc  s    @rO   %test_Type__cast_check__floating_pointrf    s,   
:;<
:;<
:;<
:;<}s~~m<<vEFMMM}s~~m<<uDEMMM+,Eus~~e,,x785@@@NN54CD
:_`
C
:23uSX.1DDEE	QQQs~~j)J67!;;;rN   c                  P  ^ Sn [        [        S 5        [        U [        R                  " U 5      -
  S-
  5      S:  d   e[        S5      S-   n[        U[        R                  " U5      -
  S-
  5      S:  d   e[        S	5      S
[        S	5      -  -   m[        [        U4S j5        g )Ny"<^@Co7ݚ?c                  .    [         R                  " S5      $ )Ny&T9ݚ?&T9ݚ?)c64r   rM   rN   rO   rP   ?test_Type__cast_check__complex_floating_point.<locals>.<lambda>  s    s~~.JKrN   r[  r\  r]  y        #B;r^  r_  z0.1234567890123456749y              ?c                  0   > [         R                  " T 5      $ rL   )c128r   )v19s   rO   rP   rj    s    ts3rN   )r   rh   r  ri  r   r   rl  )val9_11re  rm  s     @rO   -test_Type__cast_check__complex_floating_pointro    s    -G
:KLw0069:TAAA+,v5Eutu--89EAAA
'
(2e4K.L+L
LC
:34rN   c                      [        [        S5      n [        [        S:  U /5      nUR                  R                  S   [        :X  d   eUR                  R                  S   S:X  d   eUR                  [        [        SSS9:X  d   eUR                  R                  U 4:X  d   eUR                  " UR                  6 U:X  d   e[        [        [        S5      5      n[        [        S:  U5      nX:X  d   eU[        [        S:  U /5      :w  d   eg )NrC   rD   r   F)evaluaterB   )	r   rU   r.   	conditionrf   r   bodyre   r   )xppwhl1cblkwhl2s       rO   
test_Whilerx    s    
 A
&CQD>>q!Q&&&>>q!Q&&&>>R1u555599>>cV###99dii D(((+Aq12DQD<<5Q&&&&rN   c                  "   [        [        [        5      n [        [        S5      n[	        X/5      n[        X5      nUR                  U:X  d   eU[	        U5      :X  d   eU[	        X/5      :w  d   eUR                  " UR                  6 U:X  d   eg ra   )	r   rU   rd   r   r/   r   rs  re   rf   )assignincrscprv  s       rO   
test_Scoper}  -  s    1F!!Q'D

CV"D88t%+%''''88SXX#%%%rN   c                  Z   Sn [        [        [        /U 5      n[        UR                  5      U :X  d   eUR
                  [        [        [        5      :X  d   eUR                  [        [        [        5      [        U 5      [        4:X  d   eU[        [        [        4U 5      :X  d   eU[        [        [        /U 5      :w  d   eUR                  " UR                  6 U:X  d   e[        [        [        /5      nU[        [        [        /5      :X  d   eX!:w  d   eUR                  S :X  d   eg )Nz%d %.3f)r1   r?   rU   r   format_string
print_argsr   rf   r2   r;   re   )fmtpsps2s      rO   
test_Printr  8  s    
C	1vs	Br C'''==E!QK'''77uQ{L$5t<<<<1vs####1vs####77BGG"""
A-C%A-99$$$rN   c            
      
   [        [        [        S9n [        [        [        S9n[        [        SX/5      nUR                  [        :X  d   eUR                  [        S5      :X  d   eUR                  [        X5      :X  d   eU[        [        SX/5      :X  d   eU[        [        SX/5      :w  d   eUR                  " UR                  6 U:X  d   e[        [        [        [        -  5      [        [        5      /n[        [        SX/U5      nUR                  [        :X  d   e[!        UR                  5      S:X  d   eUR                  [        X5      :X  d   eUR"                  [%        U6 :X  d   eU[        [        SX/U5      :X  d   eU[        [        SX/US S S2   5      :w  d   eUR                  " UR                  6 U:X  d   e[
        R&                  " U5      nXR:X  d   e[        R(                  " X#5      nXd:X  d   eg )Nr  powerr   )r   rU   r#   r?   r"   r3   return_typer   r0   
parametersr   re   rf   r   r5   r4   r   rs  r   from_FunctionDefinitionfrom_FunctionPrototype)vxr*  fp1rs  fd1fp2fd2s          rO   -test_FunctionPrototype_and_FunctionDefinitionr  H  s   	!$	B	!'	"B
D'B8
4C??d"""88vg&&&>>U2]***#D'B8<<<<#D'B8<<<<88SXX#%%% q!Q$+D
T7RHd
;C??d"""sxx=G###>>U2]***88y$''''$T7RHdCCCC$T7RHd4R4jIIII88SXX#%%%

3
3C
8C::

3
3C
>C::rN   c                      [        [        5      n U R                  [        4:X  d   eU [        [        5      :X  d   eU [        [        5      :w  d   eU R                  " U R                  6 U :X  d   eg rL   )r5   rU   rf   rd   re   )rss    rO   test_Returnr  e  sX    	B77qd??????77BGG"""rN   c                     [        S[        S45      n U R                  S   [        :X  d   eU R                  S   S:X  d   e[        U R                  5      S:X  d   e[	        U R                  S   [
        5      (       d   eU [        S[        S45      :X  d   eU [        SS[        45      :w  d   eU [        S[        S45      :w  d   eU R                  " U R                  6 U :X  d   e[        S/ SQ5      n[        UR                  5      S:X  d   eUR                  S   S:X  d   eUR                  S   S:X  d   eUR                  S   S	:X  d   e[        U5      S
;   d   eg )Nr  rB   r   rC   rD   Powerfma)rD   rB   r   r   )z*FunctionCall(fma, function_args=(2, 3, 4))z,FunctionCall("fma", function_args=(2, 3, 4)))	r6   rU   function_argsr   r'  r   re   rf   r   )fcfc2s     rO   test_FunctionCallr  m  sl   	g1v	&BA!###A!###r A%%%b&&q)73333g1v....g1v....g1v....77BGG"""
ui
(Cs  !Q&&&Q1$$$Q1$$$Q1$$$s8    rN   c            	      b   [        S[        5      n [        S[        5      n[        S[        5      n[        [        SX/[	        U R
                  UR
                  5      /5      nUR                  n[        SUS/5      n[        X55      n[        UR                  S   R                  5      S:X  d   e[        UR                  S   R                  5      S:X  d   e[        XcU/5       H  u  pxXx:X  a  M   e   UR                  U[        S5      5      n	[        UR                  S   R                  5      S:X  d   e[        UR                  S   R                  5      S:X  d   e[        U	R                  S   R                  5      S:X  d   e[        U	R                  S   R                  5      S:X  d   eg )	NrU   rd   r?   pwerrB   r   rC   r  )r   r#   r"   r4   powr  r   r6   r   r   rf   zipreplacer0   )
rU   rd   r?   r  pnamepcalltree1rj   r   tree2s
             rO   test_ast_replacer    sg   dAdAgAdFQFS1885L4MNDIIE!Q(Ed"Euzz!}!!"f,,,uzz!}!!"f,,,E%=)vv * MM%1Euzz!}!!"f,,,uzz!}!!"f,,,uzz!}!!"g---uzz!}!!"g---rN   )~rP  sympy.core.containersr   sympy.core.numbersr   r   r   r   sympy.core.relationalr   sympy.core.symbolr	   r
   (sympy.functions.elementary.trigonometricr   sympy.matrices.denser   "sympy.matrices.expressions.matexprr   sympy.sets.fancysetsr   sympy.tensor.indexedr   r   sympy.testing.pytestr   sympy.codegen.astr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   rC  r(   r  r)   rE  r*   rF  r+   rG  r,   ri  r-   rl  r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   rU   rd   r   r   r   r   r   rj   r   r?   rA   rS   rE   rF   rG   rH   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r0  r2  rR  rf  ro  rx  r}  r  r  r  r  r  rM   rN   rO   <module>r     s|    ' 6 6 $ - 8 ' ; & 1 '             ''EF 1aBB1CaYQK51510<'5TR,1,6\%" 
F
3	)&&
 "45$8&>R!* 4F-7&t<*5'&% :#*.rN   