
    G/PhG                         d dl Z 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mZmZmZmZ ddlmZ  G d dej                  Z dS )    N)ExprOpArithOpLanguage	as_symbol	as_number	as_stringas_array
as_complexas_terms
as_factorseliminate_quotesinsert_quotes
fromstringas_expras_applyas_numer_denom
as_ternaryas_refas_deref	normalizeas_eqas_neas_ltas_gtas_leas_ge   )utilc                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )TestSymbolicc                     d }dD ]e} ||dz               ||dz   |z   dz               ||dz               ||dz   |z   dz               ||dz               |d	|z   d
z              fd S )Nc                 Z    t          |           \  }}t          ||          }|| k    sJ d S N)r   r   )srds1s       ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/f2py/tests/test_symbolic.pyworkerz2TestSymbolic.test_eliminate_quotes.<locals>.worker%   s3    #A&&DAqq!$$B777777    ) mykind_z"1234" // "ABCD"z
"1234" // z"ABCD"z"1234" // 'ABCD'z'ABCD'z"1\"2'AB'34"za = z'1\'2"AB"34' )selfr*   kinds      r)   test_eliminate_quotesz"TestSymbolic.test_eliminate_quotes$   s    	 	 	
 $ 	6 	6DF4,,---F4,&-8999F4..///F4,&-8999F4++,,,F6D=#445555	6 	6r+   c                 (   t          d          }t          d          }t          d          }|j        t          j        k    sJ t	          |          dk    sJ ||k    sJ ||k    sJ t          |          J t          d          }t          d          }|j        t          j        k    sJ t	          |          dk    sJ ||k    sJ ||k    sJ t          |          J t          d          }t          d	          }|j        t          j        k    sJ t	          |          d
k    sJ ||k    sJ ||k    sJ t          |          J t          dd          }t          dd          }	|j        t          j
        k    sJ t	          |          dk    sJ ||k    sJ ||	k    sJ t          |          J t          d          }
t          d          }|
j        t          j        k    sJ t	          |
          dk    sJ t	          |
                      |
|
k    sJ |
|k    sJ t          ||f          }t          |f          }|j        t          j        k    sJ t	          |          dk    sJ ||k    sJ ||k    sJ t          |          }t          |          }|j        t          j        k    sJ t	          |          dk    sJ ||k    sJ ||k    sJ t          |          J t#          |          }t#          |          }|j        t          j        k    sJ t	          |          dk    sJ ||k    sJ ||k    sJ t          |          J t'          |||          }t'          |||          }|j        t          j        k    sJ ||k    sJ ||k    sJ t          |          J t+          ||          }t-          ||          }|j        t          j        k    sJ ||k    sJ ||k    sJ t          |          J d S )NxyzzExpr(Op.SYMBOL, 'x'){     zExpr(Op.INTEGER, (123, 4))g(@gF@zExpr(Op.REAL, (12.3, 4))r            zFExpr(Op.COMPLEX, (Expr(Op.INTEGER, (1, 4)), Expr(Op.INTEGER, (2, 4))))z'123'"ABC"zExpr(Op.STRING, ("'123'", 1))zHExpr(Op.ARRAY, (Expr(Op.INTEGER, (123, 4)), Expr(Op.INTEGER, (456, 4))))z)Expr(Op.TERMS, {Expr(Op.SYMBOL, 'x'): 1})z+Expr(Op.FACTORS, {Expr(Op.SYMBOL, 'x'): 1}))r   opr   SYMBOLreprhashr   INTEGERREALr   COMPLEXr	   STRINGr
   ARRAYr   TERMSr   FACTORSr   TERNARYr   r   
RELATIONAL)r/   r3   r4   r5   nmfnfmcc2r%   s2abtuvwefs                       r)   test_sanityzTestSymbolic.test_sanity2   s[   cNNcNNcNNtry    Aww00000AvvvvAvvvvAww"""cNNcNNtrz!!!!Aww66666AvvvvAvvvvAww"""t__t__uBxx55555RxxxxRxxxxBxx###q!1trz!!!!Aww 9 : : : :AvvvvBwwwwAww"""gwtry    Aww;;;;T!WW;;;AvvvvBwwwwaVaUOOtrxAww ; < < < <AvvvvAvvvvQKKQKKtrxAwwEEEEEAvvvvAvvvvAww"""qMMqMMtrz!!!!AwwGGGGGAvvvvAvvvvAww"""q!Qq!Qtrz!!!!AvvvvAvvvvAww"""!QKK!QKKtr}$$$$AvvvvAvvvvAww"""""r+   c                 $   t          d          }t          d          }t          d          }t          d          }t          d          }t          ||f          }t          ||          }t	          |          dk    sJ t	          |          dk    sJ t	          |          dk    sJ t	          |          dk    sJ t	          t          t          j        |d	i                    dk    sJ t	          t          t          j        |d
i                    dk    sJ t	          t          t          j        |di                    dk    sJ t	          t          t          j        |di                    dk    sJ t	          t          t          j        |d	|d	i                    dk    sJ t	          t          t          j        |d|di                    dk    sJ t	          t          t          j        |d
|di                    dk    sJ t	          t          t          j        |d|di                    dk    sJ t	          t          t          j        |d
|di                    dk    sJ t	          t          t          j        |d	i                    dk    sJ t	          t          t          j        |d
i                    dk    sJ t	          t          t          j        |di                    dk    sJ t	          t          t          j        |di                    dk    sJ t	          t          t          j        |d	|d	i                    dk    sJ t	          t          t          j        |d
|di                    dk    sJ t          t          j        |d
t          t          j        |d	|d	i          di          }t	          |          dk    sJ t	          |                      t          t          j        |d
t          t          j        |d	|d	i          di          }t	          |          dk    sJ t	          |                      t	          t          t          j	        ddi f                    d k    sJ t	          t          t          j	        d|fi f                    d!k    sJ t	          t          t          j	        d||fi f                    d"k    sJ t	          t          t          j
        d|f                    d#k    sJ t	          t          |||                    d$k    sJ t	          t          ||                    d%k    sJ t	          t          ||                    d&k    sJ t	          t          ||                    d'k    sJ t	          t          ||                    d(k    sJ t	          t!          ||                    d)k    sJ t	          t#          ||                    d*k    sJ d S )+Nr3   r4   r5   r6   r7   123z
[123, 456]z
(123, 456)r   r8   z2 * xz-xz-2 * xx + yz-x - yr9   z2 * x + 3 * yz-2 * x + 3 * yz2 * x - 3 * yx ** 2zx ** -1zx ** -2x * yzx ** 2 * y ** 3zx ** 2 * (x + y) ** 3zx ** 2 * (x * y) ** 3rW   r.   zf()f(x)zf(x, y)f[x]zmerge(y, z, x)x .eq. yx .ne. yx .lt. yx .le. yx .gt. yx .ge. y)r   r   r
   r   strr   r   rE   rF   APPLYINDEXINGr   r   r   r   r   r   r   )	r/   r3   r4   r5   rI   rJ   rP   rM   rT   s	            r)   test_tostring_fortranz"TestSymbolic.test_tostring_fortran   s~   cNNcNNcNNcNNcNNaVq!1vv}}}}1vv1vv%%%%1vv%%%%41a&))**c111141a&))**g555541b'**++t333341b'**++x777741aA,//00G;;;;41b!R.1122h>>>>41aA,//00OCCCC41b!Q-00115EEEEE41aB-0011_DDDD4
QF++,,33334
QF++,,88884
QG,,--::::4
QG,,--::::4
Q1aL1122g====4
Q1aL11226GGGGGaDAq!Q<$@$@!DEE1vv0000#a&&000aDaAq\$B$BAFGG1vv0000#a&&00043B-0011U::::43r"23344>>>>43A"34455BBBB4c1X..//69999:aA&&''+;;;;;5A;;:----5A;;:----5A;;:----5A;;:----5A;;:----5A;;:------r+   c                    t           j        }t          d          }t          d          }t          d          }t          d          }t	          t
          j        |di                              |          dk    sJ t	          t
          j        ||z   di                              |          dk    sJ t	          t
          j        |d	i                              |          d
k    sJ t          t          j
        ||                              |          dk    sJ t          t          j
        |||z                                 |          dk    sJ t          t          j
        ||z
  ||z                                 |          dk    sJ |||z
  ||z   z  z   |z                       |          dk    sJ t          |||                              |          dk    sJ t          ||                              |          dk    sJ t          ||                              |          dk    sJ t          ||                              |          dk    sJ t          ||                              |          dk    sJ t!          ||                              |          dk    sJ t#          ||                              |          dk    sJ d S )Nr3   r4   r5   r6   r8   languagezx * xz(x + y) * (x + y)   z
pow(x, 12)x / yzx / (x + y)z(x - y) / (x + y)z123 + x + (x - y) / (x + y)z(x?y:z)x == yx != yx < yx <= yx > yx >= y)r   Cr   r   r   r   rF   tostringr   r   DIVr   r   r   r   r   r   r   )r/   ro   r3   r4   r5   rI   s         r)   test_tostring_czTestSymbolic.test_tostring_c   s6   :cNNcNNcNNcNNBJA''00(0CCwNNNNRZE1"
  8X8&&*=> > > > BJr!
  8X8&&,7 7 7 7 Q #8X866'B B B BaQ    (( ; ;}M M M Ma!eQ.  $HhH77;NO O O OQUq1u%%8X8..2OP P P P !Q""++X+>>)KKKKQ{{##X#66(BBBBQ{{##X#66(BBBBQ{{##X#66'AAAAQ{{##X#66(BBBBQ{{##X#66'AAAAQ{{##X#66(BBBBBBr+   c                    t          d          }t          d          }t          d          }||z   t          t          j        |di          k    sJ ||z
  t          t          j        d          k    sJ ||z   t          t          j        |d|di          k    sJ ||z
  t          t          j        |d|di          k    sJ ||z  t          t          j        |di          k    sJ ||z  t          t          j        |d|di          k    sJ |
 |k    sJ | t          t          j        |di          k    sJ t          |                       d|z  t          t          j        |di          k    sJ d|z   t          t          j        |dt          d          di          k    sJ d|z  d|z  z   t          t          j        |d|di          k    sJ ||z   dz  t          t          j        |d|di          k    sJ |dz  t          t          j        |di          k    sJ ||z   dz  t          t          j        t          t          j        |di          dt          t          j        |di          dt          t          j        |d|di          di          k    sJ ||z   |z  |dz  ||z  z   k    sJ ||z   dz  |dz  d|z  |z  z   |dz  z   k    sJ ||z   dz  ||z
  dz  z   d|dz  z  d|dz  z  z   k    sJ ||z   |z  ||z  ||z  z   k    sJ |||z   z  ||z  ||z  z   k    sJ |dz  t          t          j
        |t          d                    k    sJ d|z  dz  |k    sJ d|z  dz  t          t          j
        d|z  t          d                    k    sJ d	|z  dz  d|z  k    sJ d
|z  dz  t          t          j
        d
|z  t          d                    k    sJ d|z  dz  d|z  k    sJ d|z  dz  t          t          j
        d
|z  t          d                    k    sJ d|dz  z  |d	z  z  d|dz  z  |dz  z  z  t          t          j
        d
|z  d	|z            k    sJ d|z  dz  d
z  t          t          j
        |t          d                    k    sJ d|z  dz  d
z              |d
|z  z  t          t          j
        |dz  t          d
                    k    sJ |dz  t          t          j        |di          k    sJ t          d          }t          d          }||z  t          t          j        d          k    sJ ||z  t          t          j        ||f          k    sJ ||z  t          t          j        ||f          k    sJ t          dd          }| t          dd          k    sJ ||z   t          d          k    sJ ||z  t          d          k    sJ d S )Nr3   r4   r5   r8   )r   r:   r   r[   r9   r:                  g       @g      ?r;   "123")z"ABC123"r   g      ?g      g       y       @      @y            @)r   r   r   rE   r@   rF   r>   r   r   r   rz   r	   rC   CONCATr   r   )r/   r3   r4   r5   r%   rR   rM   s          r)   test_operationszTestSymbolic.test_operations   s   cNNcNNcNN1uRX1v......1uRZ0000001uRX1a|4444441uRX1a}5555551uRZ!Q0000001uRZ!Q1666666rQwwwwrT"(QG,,,,,dA2hh,,,1uRX1v......1uRX1illA'>??????1uq1u}RX1a| < <<<<<A{d28aAq\::::::!ttBJA//////AzTHRZ!Q((!RZ!Q((!RZqq"   

 

 

 

 

 

 A{adQUl****AzQTAEAI-144444AzQUQJ&!ad(QAX*=====A{a!ea!em++++AE{a!ea!em++++A(7;9Q<<@@@@@@A	aA	hw{AE9Q<<HHHHHHA	a!e####A	hw{AE9Q<<HHHHHHA	a!e####!aHW[!a%1$N$NNNNNQT	AqD BAI1$45(KQA;' ;' ' ' ' 'a!q Xgk1.7ll&< &< < < <>@1fqjA=M< < <QUadIaLL I IIIIICDAs8444444ggAvbi999999Avbi!Q000000Avbi!Q000000sC  rZd++++++1u------1u,,,,,,,,r+   c                 ~   t          d          }t          d          }t          d          }t          ||f          }|                    ||i          |k    sJ ||z                       ||i          ||z   k    sJ ||z                      ||i          ||z  k    sJ |dz                      ||i          |dz  k    sJ ||z                      ||i          ||z  k    sJ |                    |||z   i          ||z   k    sJ |                    |||z   i          t          ||z   |f          k    sJ t          |||                              |||z   i          t          ||z   ||          k    sJ t	          ||                              |||z   i          t	          ||z   |          k    sJ d S )Nr3   r4   r5   r:   )r   r
   
substituter   r   )r/   r3   r4   r5   rP   s        r)   test_substitutezTestSymbolic.test_substitute  s   cNNcNNcNNaV||QF##q((((A!!1a&))QU2222A!!1a&))QU22221  !Q((AqD0000A!!1a&))QU2222||QAJ''1q50000||QAJ''8QUAJ+?+?????!Q 'ZAE
33z!a%A7N7NO O O OQ{{%%q!a%j11U1q5!__DDDDDDr+   c                    t          d          }t          d          }t          d          }t          d          }t          d          }t          d          }t          ||f          }t          d          |k    sJ t          d          |k    sJ t          d          | k    sJ t          d	          ||z   k    sJ t          d
          |dz   k    sJ t          d          ||z  k    sJ t          d          |dz  k    sJ t          d          ||z  k    sJ t          dt          j                  |dz  k    sJ t          dt          j                  |dz  k    sJ t          d          ||z   |z  k    sJ t          d           ||          k    sJ t          d           |||          k    sJ t          d          ||         k    sJ t          d          ||         |         k    sJ t          d          |k    sJ t          t          dt          j                            ||z  k    sJ t          d           ||          k    sJ t          d          t          dd          k    sJ t          d          |k    sJ t          d                      t          d           ||          k    sJ t          d          t          ||z   |z  f          k    sJ t          d           t          d!          k    sJ t          d"          t          d!d          k    sJ t          d#          t          d!d$          k    sJ t          d%          t          d&d'          k    sJ t          d(          t          d&d'          k    sJ t          d)          t          d&d          k    sJ t          d*          t          d&d'          k    sJ t          d+          t          d&d          k    sJ t          d,          t          d&d          k    sJ t          d-          t          d&d'          k    sJ t          d.          t          d&d          k    sJ t          d/          t          d&d0          k    sJ t          d1          t          d2d'          k    sJ t          d3          t          dd          k    sJ t          d4          t          t          d5          t          d6                    k    sJ t          d7          t          t          d          t          d          f          k    sJ t          d8          t          t          d9          |t          d          :          k    sJ t          d;          t          t          d<          t          d=          t          d>          t          t          d?          t          d@          f          A          k    sJ t          dB          t          |||          k    sJ t          dC          t          |          k    sJ t          dD          t          t          |                    k    sJ t          dE          t          |          k    sJ t          dF          t          |          t          |          z  k    sJ t          dG          t          |          t          |          z  k    sJ t          dH          t          |          t          |          z  k    sJ t          dI          t          |          t          |          z  k    sJ t          dJ          t          ||          k    sJ t          dK          t          ||          k    sJ t          dL          t!          ||          k    sJ t          dM          t#          ||          k    sJ t          dN          t%          ||          k    sJ t          dO          t'          ||          k    sJ t          dPt          j                  t          ||          k    sJ t          dQt          j                  t          ||          k    sJ t          dRt          j                  t!          ||          k    sJ t          dSt          j                  t#          ||          k    sJ t          dTt          j                  t%          ||          k    sJ t          dUt          j                  t'          ||          k    sJ d S )VNr3   r4   r5   rW   r;   r   z+ xz-  xr]   zx + 1r   r`   zx * 2r8   rq   r_   rn   zx ** 2 ** 3   z(x + y) * zra   zf(x,y)rb   zf[x][y]z"ABC" // "123" zf("ABC")zMYSTRKIND_"ABC"	MYSTRKINDz(/x, y/)zf((/x, y/))z(/(x+y)*z/)rZ   r6   123_2123_myintkind	myintkindz123.0g     ^@r:   z123.0_4z123.0_8z123.0e0z123.0d0123d0z123e-0z123d+0z123.0_myrealkind
myrealkind3E4g     L@z(1, 2)z	(1e2, PI)g      Y@PIz[1, 2]zPOINT(x, y=1)POINT)r4   z-PERSON(name="John", age=50, shape=(/34, 23/))PERSONz"John"2   "      )nameageshapezx?y:zz*xz**xz&xz(*x) * (*y)z	(*x) * *yz*x * *yz*x**yrr   rs   rt   rv   ru   rw   rc   rd   re   rg   rf   rh   )r   r	   r
   r   r   Pythonr   Fortranr   r   r   r   r   r   r   r   r   r   r   r   )r/   r3   r4   r5   rW   r%   rR   rP   s           r)   test_fromstringzTestSymbolic.test_fromstring&  sP	   cNNcNNcNNcNNggaV#!####%  A%%%%&!!aR'''''""a!e++++'""a!e++++'""a!e++++'""a!e++++'""a!e++++(X_===AEEEE-(/BBBagMMMM-((QUaK7777&!!QQqTT))))(##qqAww....&!!QqT)))))$$!Q////'""a''''( ( 02 2 23 3671f= = = = *%%1----+,,	';0O0OOOOO*%%***Jz,B,B***-((AAaDD0000-((Hq1uk_,E,EEEEE%  IcNN2222'""iQ&7&77777/**i[.I.IIIII'""iq&9&99999)$$	%(;(;;;;;)$$	%(;(;;;;;)$$	%(;(;;;;;)$$	%(;(;;;;;'""iq&9&99999(##y':':::::(##y':':::::,--5,1O1OOOOO%  Igq$9$99999(##z!Q'7'77777+&&*Yu5E5E5>t__+F +F F F F F (##x1y||0L'M'MMMMM/**hy7I7I789B1/G /G /G G G G G ;= =@H(##x((bMM	"y}}=>>	A A A    '""jAq&9&99999$8A;;....%  HXa[[$9$99999$6!99,,,,-((HQKK(1++,EEEEE+&&(1++*CCCCC)$$hqkk(AAAAA'""hqkkHQKK&?????(##uQ{{2222(##uQ{{2222'""eAqkk1111'""eAqkk1111(##uQ{{2222(##uQ{{2222*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOOOOr+   c                   	
 t          d          
t          d          }t          d          }t          d          }|f
fd	}
                    |          |k    sJ |                    |          |k    sJ |                    |          |k    sJ  ||                              |           ||          k    sJ  |
                              |           ||          k    sJ ||                             |          ||         k    sJ ||                             |          ||         k    sJ 
|z   |z                       |          d|z  |z   k    sJ 
 ||
|z
            z                       |          | ||t          d                    z   k    sJ t          
|                              |          t          ||          k    sJ t	                      t	                      		fd}
 ||
|z
            z                       |           |hk    sJ 	
||hk    sJ d	 }t	                      	
 ||
|z
            z                       |	           	
|||hk    sJ d
 }t	                      	
 ||
|z
            z                       |	           	
hk    sJ d S )Nr3   r4   r5   rW   c                     | k    r|S d S r$   r.   )r%   r&   r3   s     r)   replace_visitz1TestSymbolic.test_traverse.<locals>.replace_visit  s    Avv vr+   r8   r   c                    | j         t          j        u r?| j        d         }                    |           |v r                    |           d S d S | j         t          j        u r| vr                    |            d S d S d S )Nr   )r<   r   rj   dataaddremover=   )r%   operfunction_symbolssymbolss     r)   collect_symbolsz3TestSymbolic.test_traverse.<locals>.collect_symbols  s    trxvay $$T***7??NN4((((( #?""q0@'@'@A #"'@'@r+   c                 Z    | j         t          j        u r|                    |            d S d S r$   )r<   r   r=   r   exprr   s     r)   collect_symbols2z4TestSymbolic.test_traverse.<locals>.collect_symbols2  s1    w")##D!!!!! $#r+   c                     | j         t          j        u r| S | j         t          j        u r|                    |            d S d S r$   )r<   r   rj   r=   r   r   s     r)   collect_symbols3z4TestSymbolic.test_traverse.<locals>.collect_symbols3  sE    w"(""w")##D!!!!! $#r+   )r   traverser   r   set)r/   r4   r5   rW   r   r   r   r   r   r   r3   s           @@@r)   test_traversezTestSymbolic.test_traverse  sC   cNNcNNcNNcNN  ! 	 	 	 	 	 	 zz-((A----zz-((A----zz-((A----!}--15555!}--15555!}--15555!}--15555A	##M22q1uqyAAAA!QU%Xm449:1ill9K9K:LM M M M Q{{##M22eAqkkAAAA 55%%	 	 	 	 	 	 
QQq!a%[[""?333A3&&&&1a)####	" 	" 	" %%	
QQq!a%[[""#3W===1aA,&&&&	" 	" 	" %%	
QQq!a%[[""#3W===1#~~~~~~r+   c                    t          d          t          d          }t          d          }                              t          d          t          d          fk    sJ dz                                 t          d          t          d          fk    sJ dz                                t          d          t          d          fk    sJ dz  dz                                 t          d          t          d          fk    sJ t          d                                        t          d          t          d          fk    sJ |                              t          d          |fk    sJ ||z                                t          d          ||z  fk    sJ |z                                 t          d          |fk    sJ |z  |z                                 ||fk    sJ ||z   z  |z                                 ||z   |fk    sJ ||z  z  |z                                 ||z  |fk    sJ t          j        t
          fd           d S )	Nr3   r4   r5   r   r   r8   r9   c                  4      z                                  S r$   )linear_solve)r3   s   r)   <lambda>z0TestSymbolic.test_linear_solve.<locals>.<lambda>  s    QU,@,@,C,C r+   )r   r   r   pytestraisesRuntimeError)r/   r4   r5   r3   s      @r)   test_linear_solvezTestSymbolic.test_linear_solve  sc   cNNcNNcNN~~a  Yq\\9Q<<$@@@@@A##A&&9Q<<1*FFFFFA##A&&9Q<<1*FFFFFA	''**y||Yq\\.JJJJJ||((++	!ill/KKKKK~~a  Yq\\1$55555A##A&&9Q<<Q*?????A##A&&9Q<<*;;;;;A	''**q!f4444Q!a--a00QUAJ>>>>A	A++A..1q5!*<<<<l$C$C$C$CDDDDDr+   c                 <   t          d          }t          d          }t          d          }t          |          |t          d          fk    sJ t          ||z            ||fk    sJ t          ||z            ||fk    sJ t          ||z            ||fk    sJ t          ||z            ||z  t          d          fk    sJ t          |||z  z             |||z  z   |fk    sJ t          |||||z  z
  z  z             ||dz  z  ||z  |z
  fk    sJ d S )Nr3   r4   r6   r   r8   )r   r   r   r/   r3   r4   rI   s       r)   test_as_numer_denomz TestSymbolic.test_as_numer_denom  sH   cNNcNNcNNa  Q	!$55555a!e$$A....a!e$$A....a!e$$A....a!e$$Q	!(=====a!a%i((QQYN::::a!q1q5y/122q1a4xQ6KKKKKKKr+   c                    t          d          }t          d          }t          d          }|                                |hk    sJ |                                t                      k    sJ ||                                         ||         hk    sJ  ||                                           ||          hk    sJ  ||          |z                                    ||          |hk    sJ  ||          ||         z                                   ||          ||         hk    sJ  ||          |z                                   ||          hk    sJ d S )Nr3   r4   r6   )r   r   polynomial_atomsr   r   s       r)   test_polynomial_atomsz"TestSymbolic.test_polynomial_atoms  sd   cNNcNNcNN!!##s****!!##suu,,,,!&&((QqTF2222!&&((QQqTTF2222!q**,,1q	9999!qt--//AAaDD!A$<????!a))++!v555555r+   N)__name__
__module____qualname__r1   rX   rl   r{   r   r   r   r   r   r   r   r.   r+   r)   r!   r!   #   s        6 6 6O# O# O#b/. /. /.bC C C@>- >- >-@E E E$\P \P \P|< < <|E E E(L L L6 6 6 6 6r+   r!   )!r   numpy.f2py.symbolicr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   r   F2PyTestr!   r.   r+   r)   <module>r      s                                                            :      K6 K6 K6 K6 K64= K6 K6 K6 K6 K6r+   