bgGddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZGddejZ dS)N)ExprOpArithOpLanguage as_symbol as_number as_stringas_array as_complexas_terms as_factorseliminate_quotes insert_quotes fromstringas_expras_applyas_numer_denom as_ternaryas_refas_deref normalizeas_eqas_neas_ltas_gtas_leas_ge)utilcPeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d S) TestSymboliccd}dD]e}||dz||dz|zdz||dz||dz|zdz||dz|d |zd zfdS) NcZt|\}}t||}||ksJdSN)rr)srds1s q/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/numpy/f2py/tests/test_symbolic.pyworkerz2TestSymbolic.test_eliminate_quotes..worker%s3#A&&DAqq!$$B777777)mykind_z"1234" // "ABCD"z "1234" // z"ABCD"z"1234" // 'ABCD'z'ABCD'z "1\"2'AB'34"za = 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=#44 5 5 5 5  6 6r+c(td}td}td}|jtjksJt |dksJ||ksJ||ksJt |Jt d}t d}|jtjksJt |dksJ||ksJ||ksJt |Jt d}t d }|jtjksJt |d ksJ||ksJ||ksJt |Jtd d }td d} |jtj ksJt |dksJ||ksJ|| ksJt |Jtd} td} | jtj ksJt | dksJt | | | ksJ| | ksJt||f} t|f} | jtjksJt | dksJ| | ksJ| | ksJt|}t|}|jtjksJt |dksJ||ksJ||ksJt |Jt#|}t#|}|jtjksJt |dksJ||ksJ||ksJt |Jt'|||}t'|||}|jtjksJ||ksJ||ksJt |Jt+||}t-||}|jtjksJ||ksJ||ksJt |JdS)NxyzzExpr(Op.SYMBOL, 'x'){zExpr(Op.INTEGER, (123, 4))g(@gF@zExpr(Op.REAL, (12.3, 4))rzFExpr(Op.COMPLEX, (Expr(Op.INTEGER, (1, 4)), Expr(Op.INTEGER, (2, 4))))z'123'"ABC"zExpr(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}))roprSYMBOLreprhashrINTEGERREALr COMPLEXr STRINGr ARRAYr TERMSr FACTORSrTERNARYrr RELATIONAL)r/r3r4r5nmfnfmcc2r%s2abtuvwefs r) test_sanityzTestSymbolic.test_sanity2s[ cNN cNN cNNtry    Aww00000AvvvvAvvvvAww""" cNN cNNtrz!!!!Aww66666AvvvvAvvvvAww""" t__ t__uBxx55555RxxxxRxxxxBxx### q!   1  trz!!!!Aww9::::AvvvvBwwwwAww""" g   w  try    Aww;;;;T!WW;;;AvvvvBwwww aV   aUOOtrxAww;<<<<AvvvvAvvvv QKK QKKtrxAwwEEEEEAvvvvAvvvvAww""" qMM qMMtrz!!!!AwwGGGGGAvvvvAvvvvAww""" q!Q   q!Q  trz!!!!AvvvvAvvvvAww""" !QKK !QKKtr}$$$$AvvvvAvvvvAww"""""r+c $ td}td}td}td}td}t||f}t||}t |dksJt |dksJt |dksJt |dksJt t t j|d idksJt t t j|d id ksJt t t j|d id ksJt t t j|didksJt t t j|d |d idksJt t t j|d |d idksJt t t j|d |didksJt t t j|d|didksJt t t j|d |didksJt t t j|d idksJt t t j|d idksJt t t j|d idksJt t t j|didksJt t t j|d |d idksJt t t j|d |didksJt t j|d t t j|d |d idi}t |dksJt |t t j|d t t j|d |d idi}t |dksJt |t t t j ddifd ksJt t t j d|fifd!ksJt t t j d||fifd"ksJt t t j d|fd#ksJt t|||d$ksJt t||d%ksJt t||d&ksJt t||d'ksJt t||d(ksJt t!||d)ksJt t#||d*ksJdS)+Nr3r4r5r6r7123z [123, 456]z (123, 456)rr8z2 * xz-xz-2 * xx + yz-x - yr9z 2 * x + 3 * yz-2 * x + 3 * yz 2 * x - 3 * yx ** 2zx ** -1zx ** -2x * yzx ** 2 * y ** 3zx ** 2 * (x + y) ** 3zx ** 2 * (x * y) ** 3rWr.zf()f(x)zf(x, y)f[x]zmerge(y, z, x)x .eq. yx .ne. yx .lt. yx .le. yx .gt. yx .ge. y)rrr r strrrrErFAPPLYINDEXINGrrrrrrr) r/r3r4r5rIrJrPrMrTs r)test_tostring_fortranz"TestSymbolic.test_tostring_fortrans~ cNN cNN cNN cNN cNN aV   q!  1vv}}}}1vv1vv%%%%1vv%%%%41a&))**c111141a&))**g555541b'**++t333341b'**++x777741aA,//00G;;;;41b!R.1122h>>>>41aA,//00OCCCC41b!Q-00115EEEEE41aB-0011_DDDD4 QF++,,33334 QF++,,88884 QG,,--::::4 QG,,--::::4 Q1aL1122g====4 Q1aL11226GGGGG aDAq!Q<$@$@!D E E1vv0000#a&&000 aDaAq\$B$BAF G G1vv0000#a&&00043B-0011U::::43r"23344>>>>43A"34455BBBB4 c1X..//69999:aA&&''+;;;;;5A;;:----5A;;:----5A;;:----5A;;:----5A;;:----5A;;:------r+ctj}td}td}td}td}t t j|di|dksJt t j||zdi|dksJt t j|d i|d ksJttj |||d ksJttj |||z|d ksJttj ||z ||z|d ksJ|||z ||zz z|z|dksJt||||dksJt|||dksJt|||dksJt|||dksJt|||dksJt!|||dksJt#|||dksJdS)Nr3r4r5r6r8languagezx * xz(x + y) * (x + y) z pow(x, 12)x / yz x / (x + y)z(x - y) / (x + y)z123 + x + (x - y) / (x + y)z(x?y:z)x == yx != yx < yx <= yx > yx >= y)rCrrrrrFtostringrrDIVrrrrrrr)r/ror3r4r5rIs r)test_tostring_czTestSymbolic.test_tostring_cs6: cNN cNN cNN cNNBJA''00(0CCwNNNNRZ E1"   8X8 & &*=>>>>BJ r!   8X8 & &,7777 Q#8X866'BBBBaQ  (( ; ;}MMMMa!eQ.$HhH77;NOOOOQUq1u%%8X8..2OPPPP!Q""++X+>>)KKKKQ{{##X#66(BBBBQ{{##X#66(BBBBQ{{##X#66'AAAAQ{{##X#66(BBBBQ{{##X#66'AAAAQ{{##X#66(BBBBBBr+c td}td}td}||zttj|diksJ||z ttjdksJ||zttj|d|diksJ||z ttj|d|diksJ||zttj|diksJ||zttj|d|diksJ| |ksJ| ttj|diksJt | d|zttj|diksJd|zttj|dtddiksJd|zd|zzttj|d|diksJ||zdzttj|d|diksJ|dzttj|diksJ||zdzttjttj|didttj|didttj|d|didiksJ||z|z|dz||zzksJ||zdz|dzd|z|zz|dzzksJ||zdz||z dzzd|dzzd|dzzzksJ||z|z||z||zzksJ|||zz||z||zzksJ|dz ttj |tdksJd|zdz |ksJd|zdz ttj d|ztdksJd |zdz d|zksJd |zdz ttj d |ztdksJd |zdz d|zksJd |zd z ttj d |ztdksJd |dzz|d zzd|dzz|dzzz ttj d |zd |zksJd |zd z d z ttj |tdksJd |zd z d z |d |z z ttj |dztd ksJ|dz ttj|diksJtd}td}||zttj dksJ||zttj ||fksJ||zttj ||fksJtdd}| tddksJ||ztdksJ||ztdksJdS)Nr3r4r5r8)rr:rr[r9r:g@g?r;"123")z"ABC123"rg?ggy@@y@)rrrrEr@rFr>rrrrzr rCCONCATr r)r/r3r4r5r%rRrMs r)test_operationszTestSymbolic.test_operationss cNN cNN cNN1uRX1v......1uRZ0000001uRX1a|4444441uRX1a}5555551uRZ!Q0000001uRZ!Q1666666rQwwwwrT"(QG,,,,,dA2hh,,,1uRX1v......1uRX1illA'>??????1uq1u}RX1a| < <<<<<A{d28aAq\::::::!ttBJA//////AzT HRZ!Q((!RZ!Q((!RZqq"         A{adQUl****AzQTAEAI-144444AzQUQJ&!ad(QAX*=====A{a!ea!em++++AE{a!ea!em++++A(7;9Q<<@@@@@@A aA hw{AE9Q<<HHHHHHA a!e####A hw{AE9Q<<HHHHHHA a!e####! aHW[!a%1$N$NNNNNQT AqD BAI1$45( KQA;';'''''a!q Xgk1.7ll&<&<<<<>@1fqjA=M<<<QU adIaLL I IIIIICDAs8444444 g   g  Avbi999999Avbi!Q000000Avbi!Q000000 sC rZd++++++1u ------1u ,,,,,,,,r+c~td}td}td}t||f}|||i|ksJ||z||i||zksJ||z||i||zksJ|dz||i|dzksJ||z ||i||z ksJ||||zi||zksJ||||zit||z|fksJt||||||zit||z||ksJt |||||zit ||z|ksJdS)Nr3r4r5r:)rr substituterr)r/r3r4r5rPs r)test_substitutezTestSymbolic.test_substitutes cNN cNN cNN aV  ||QF##q((((A!!1a&))QU2222A!!1a&))QU22221  !Q((AqD0000A!!1a&))QU2222||QAJ''1q50000||QAJ''8QUAJ+?+?????!Q'ZAE 33z!a%A7N7NOOOOQ{{%%q!a%j11U1q5!__DDDDDDr+c td}td}td}td}td}td}t||f}td|ksJtd|ksJtd| ksJtd ||zksJtd |d zksJtd ||zksJtd |dzksJtd||z ksJtdtj|dzksJtdtj|dzksJtd||z|zksJtd||ksJtd|||ksJtd||ksJtd|||ksJtd|ksJt tdtj||zksJtd||ksJtdtddksJtd|ksJtdtd||ksJtdt||z|zfksJtd td!ksJtd"td!dksJtd#td!d$ksJtd%td&d'ksJtd(td&d'ksJtd)td&dksJtd*td&d'ksJtd+td&dksJtd,td&dksJtd-td&d'ksJtd.td&dksJtd/td&d0ksJtd1td2d'ksJtd3td dksJtd4ttd5td6ksJtd7ttd tdfksJtd8ttd9|td :ksJtd;ttd<td=td>ttd?td@fAksJtdBt|||ksJtdCt|ksJtdDtt|ksJtdEt|ksJtdFt|t|zksJtdGt|t|zksJtdHt|t|zksJtdIt|t|zksJtdJt||ksJtdKt||ksJtdLt!||ksJtdMt#||ksJtdNt%||ksJtdOt'||ksJtdPtjt||ksJtdQtjt||ksJtdRtjt!||ksJtdStjt#||ksJtdTtjt%||ksJtdUtjt'||ksJdS)VNr3r4r5rWr;rz+ xz- xr]zx + 1rr`zx * 2r8rqr_rnz x ** 2 ** 3z (x + y) * zrazf(x,y)rbzf[x][y]z"ABC" // "123" zf("ABC")zMYSTRKIND_"ABC" MYSTRKINDz(/x, y/)z f((/x, y/))z (/(x+y)*z/)rZr6123_2 123_myintkind myintkindz123.0g^@r:z123.0_4z123.0_8z123.0e0z123.0d0123d0z123e-0z123d+0z123.0_myrealkind myrealkind3E4gL@z(1, 2)z (1e2, PI)gY@PIz[1, 2]z POINT(x, y=1)POINT)r4z-PERSON(name="John", age=50, shape=(/34, 23/))PERSONz"John"2")nameageshapezx?y:zz*xz**xz&xz (*x) * (*y)z (*x) * *yz*x * *yz*x**yrrrsrtrvrurwrcrdrergrfrh)rr r rrPythonrFortranrr rrrrrrrrrr)r/r3r4r5rWr%rRrPs r)test_fromstringzTestSymbolic.test_fromstring&sP cNN cNN cNN cNN g   g   aV  #!####%  A%%%%&!!aR'''''""a!e++++'""a!e++++'""a!e++++'""a!e++++'""a!e++++(X_===AEEEE-(/BBBagMMMM-((QUaK7777&!!QQqTT))))(##qqAww....&!!QqT)))))$$!Q////'""a'''' ( ( 0 2 2 233671f====*%%1----+,, ';0O0OOOOO*%%***Jz,B,B***-((AAaDD0000-((Hq1uk_,E,EEEEE%  IcNN2222'""iQ&7&77777/**i[.I.IIIII'""iq&9&99999)$$ %(;(;;;;;)$$ %(;(;;;;;)$$ %(;(;;;;;)$$ %(;(;;;;;'""iq&9&99999(##y':':::::(##y':':::::,--5,1O1OOOOO%  Igq$9$99999(##z!Q'7'77777+&&*Yu5E5E5>t__+F+FFFFF(##x1y||0L'M'MMMMM/**hy7I7I789B1/G/G/GGGGG ;==@H(##x((bMM " y}}=>> AAA'""jAq&9&99999$8A;;....%  HXa[[$9$99999$6!99,,,,-((HQKK(1++,EEEEE+&&(1++ *CCCCC)$$ hqkk(AAAAA'""hqkkHQKK&?????(##uQ{{2222(##uQ{{2222'""eAqkk1111'""eAqkk1111(##uQ{{2222(##uQ{{2222*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOO*x/?@@@E!QKKOOOOOOr+c td td}td}td}|f fd } ||ksJ|||ksJ|||ksJ|||||ksJ| |||ksJ|||||ksJ|||||ksJ |z|z|d|z|zksJ || |z z||||tdzksJt ||t||ksJt t  fd} || |z z||hksJ ||hksJd }t || |z z|  |||hksJd }t || |z z|  hksJdS) Nr3r4r5rWc|kr|SdSr$r.)r%r&r3s r) replace_visitz1TestSymbolic.test_traverse..replace_visitsAvvvr+r8rc |jtjur?|jd}||vr|dSdS|jtjur|vr|dSdSdS)Nr)r<rrjdataaddremover=)r%operfunction_symbolssymbolss r)collect_symbolsz3TestSymbolic.test_traverse..collect_symbolsstrxvay $$T***7??NN4(((((#?""q0@'@'@ A#"'@'@r+cZ|jtjur||dSdSr$)r<rr=rexprrs r)collect_symbols2z4TestSymbolic.test_traverse..collect_symbols2s1w")## D!!!!!$#r+c|jtjur|S|jtjur||dSdSr$)r<rrjr=rrs r)collect_symbols3z4TestSymbolic.test_traverse..collect_symbols3sEw"("" w")## D!!!!!$#r+)rtraverserrset) r/r4r5rWrrrrrrr3s @@@r) test_traversezTestSymbolic.test_traversesC cNN cNN cNN cNN !      zz-((A----zz-((A----zz-((A----!}--15555!}--15555!}--15555!}--15555A ##M22q1uqyAAAA!QU %Xm449:1ill9K9K:LMMMMQ{{##M22eAqkkAAAA55%%       QQq!a%[[""?333A3&&&&1a)#### " " "%% QQq!a%[[""#3W===1aA,&&&& " " "%% QQq!a%[[""#3W===1#~~~~~~r+ctdtd}td}tdtdfksJdztdtdfksJdztdtdfksJdzdztdtdfksJtdtdtdfksJ|td|fksJ||ztd||zfksJ|ztd|fksJ|z|z||fksJ||zz|z||z|fksJ||zz|z||z|fksJtjt fddS) Nr3r4r5rrr8r9c4zSr$) linear_solve)r3sr)z0TestSymbolic.test_linear_solve..sQU,@,@,C,Cr+)rrrpytestraises RuntimeError)r/r4r5r3s @r)test_linear_solvezTestSymbolic.test_linear_solvesc cNN cNN cNN~~a  Yq\\9Q<<$@@@@@A##A&&9Q<<1*FFFFFA##A&&9Q<<1*FFFFFA ''**y||Yq\\.JJJJJ||((++ ! ill/KKKKK~~a  Yq\\1$55555A##A&&9Q<<Q*?????A##A&&9Q<<*;;;;;A ''**q!f4444Q! a--a00QUAJ>>>>A A ++A..1q5!*<<<< l$C$C$C$CDDDDDr+c<td}td}td}t||tdfksJt||z ||fksJt||z ||fksJt||z ||fksJt||z||ztdfksJt|||z z|||zz|fksJt|||||z z z z||dzz||z|z fksJdS)Nr3r4r6rr8)rrrr/r3r4rIs r)test_as_numer_denomz TestSymbolic.test_as_numer_denomsH cNN cNN cNNa  Q ! $55555a!e$$A....a!e$$A....a!e$$A....a!e$$Q ! (=====a!a%i((QQYN::::a!q1q5y/122q1a4xQ6KKKKKKKr+ctd}td}td}||hksJ|tksJ||||hksJ||||hksJ|||z|||hksJ||||z||||hksJ|||z||hksJdS)Nr3r4r6)rrpolynomial_atomsrrs r)test_polynomial_atomsz"TestSymbolic.test_polynomial_atomssd cNN cNN cNN!!##s****!!##suu,,,,!&&((QqTF2222!&&((QQqTTF2222!q**,,1q 9999!qt --//AAaDD!A$<????!a))++!v555555r+N)__name__ __module__ __qualname__r1rXrlr{rrrrrrrr.r+r)r!r!#s 6 6 6O#O#O#b/././.bCCC@>->->-@EEE$\P\P\P|<<<|EEE( L L L 6 6 6 6 6r+r!)!rnumpy.f2py.symbolicrrrrrrr r r r r rrrrrrrrrrrrrrrrr,rF2PyTestr!r.r+r)rs :K6K6K6K6K64=K6K6K6K6K6r+