K iGddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZGddej>Z y)N)ArithOpExprLanguageOpas_applyas_array as_complexas_derefas_eqas_expr as_factorsas_geas_gtas_leas_ltas_ne as_numberas_numer_denomas_ref as_string as_symbolas_terms as_ternaryeliminate_quotes fromstring insert_quotes normalize)utilcNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestSymboliccd}dD]S}||dz||dz|zdz||dz||dz|zdz||dz|d |zd zUy) NcFt|\}}t||}||k(sJyN)rr)srds1s d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/numpy/f2py/tests/test_symbolic.pyworkerz2TestSymbolic.test_eliminate_quotes..worker&s'#A&DAqq!$B7N7)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  $ 6D 4,, - 4,&-8 9 4.. / 4,&-8 9 4++ , 6D=#44 5  6r+cXtd}td}td}|jtjk(sJt |dk(sJ||k(sJ||k7sJt |Jt d}t d}|jtjk(sJt |dk(sJ||k(sJ||k7sJt |Jt d}t d }|jtjk(sJt |d k(sJ||k(sJ||k7sJt |Jtd d }td d} |jtjk(sJt |dk(sJ||k(sJ|| k7sJt |Jtd} td} | jtjk(sJt | dk(sJt | | | k(sJ| | k7sJt||f} t|f} | jtjk(sJt | dk(sJ| | k(sJ| | k7sJt|}t|}|jtj k(sJt |dk(sJ||k(sJ||k7sJt |Jt#|}t#|}|jtj$k(sJt |dk(sJ||k(sJ||k7sJt |Jt'|||}t'|||}|jtj(k(sJ||k(sJ||k7sJt |Jt+||}t-||}|jtj.k(sJ||k(sJ||k7sJt |Jy)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 COMPLEXrSTRINGrARRAYrTERMSr FACTORSrTERNARYr r RELATIONAL)r/r3r4r5nmfnfmcc2r%s2abtuvwefs r) test_sanityzTestSymbolic.test_sanity3s cN cN cNttryy   Aw0000Av vAv vAw""" cN cNttrzz!!!Aw6666Av vAv vAw""" t_ t_uuBx5555RxxRxxBx### q!  1 ttrzz!!!Aw9: ::Av vBwwAw""" g  w ttryy   Aw;;DT!WD;Av vBww aV  aUOttrxxAw;< <<Av vAv v QK QKttrxxAwEEEEAv vAv vAw""" qM qMttrzz!!!AwGGGGAv vAv vAw""" q!Q  q!Q ttrzz!!!Av vAv vAw""" !QK !QKttr}}$$$Av vAv vAw"""r+c V td}td}td}td}td}t||f}t||}t |dk(sJt |dk(sJt |dk(sJt |dk(sJt t t j|d idk(sJt t t j|d id k(sJt t t j|d id k(sJt t t j|didk(sJt t t j|d |d idk(sJt t t j|d |d idk(sJt t t j|d |didk(sJt t t j|d|didk(sJt t t j|d |didk(sJt t t j|d idk(sJt t t j|d idk(sJt t t j|d idk(sJt t t j|didk(sJt t t j|d |d idk(sJt t t j|d |didk(sJt t j|d t t j|d |d idi}t |dk(sJt |t t j|d t t j|d |d idi}t |dk(sJt |t t t jddifd k(sJt t t jd|fifd!k(sJt t t jd||fifd"k(sJt t t jd|fd#k(sJt t|||d$k(sJt t||d%k(sJt t||d&k(sJt t||d'k(sJt t||d(k(sJt t!||d)k(sJt t#||d*k(sJy)+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)rrrr strrrrErFAPPLYINDEXINGrr rrrrr) r/r3r4r5rIrJrPrMrTs r)test_tostring_fortranz"TestSymbolic.test_tostring_fortrans cN cN cN cN cN aV  q! 1v}}1v1v%%%1v%%%41a&)*c11141a&)*g55541b'*+t33341b'*+x77741aA,/0G;;;41b!R.12h>>>41aA,/0OCCC41b!Q-015EEEE41aB-01_DDD4 QF+,3334 QF+,8884 QG,-:::4 QG,-:::4 Q1aL12g===4 Q1aL126GGGG aDAq!Q<$@!D E1v008#a&80 aDaAq\$BAF G1v008#a&8043B-01U:::43r"234>>>43A"345BBB4 c1X./6999:aA&'+;;;;5A;:---5A;:---5A;:---5A;:---5A;:---5A;:---r+ctj}td}td}td}td}t t j |dij|dk(sJt t j ||zdij|dk(sJt t j |d ij|d k(sJttj||j|d k(sJttj|||zj|d k(sJttj||z ||zj|d k(sJ|||z ||zz z|zj|dk(sJt|||j|dk(sJt||j|dk(sJt||j|dk(sJt||j|dk(sJt||j|dk(sJt!||j|dk(sJt#||j|dk(sJy)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)rCrrrrrFtostringrrDIVrr rrrrr)r/ror3r4r5rIs r)test_tostring_czTestSymbolic.test_tostring_cs:: cN cN cN cNBJJA'00(0CwNNNRZZ E1"  8X8 &*=> ?>BJJ r!  8X8 &,7 77 Q#8X86'B BBaQ (( ;}M NMa!eQ.$HhH7;NO POQUq1u%%8X8.2OP PP!Q"++X+>)KKKQ{##X#6(BBBQ{##X#6(BBBQ{##X#6'AAAQ{##X#6(BBBQ{##X#6'AAAQ{##X#6(BBBr+c td}td}td}||zttj|dik(sJ||z ttjdk(sJ||zttj|d|dik(sJ||z ttj|d|dik(sJ||zttj |dik(sJ||zttj |d|dik(sJ||k(sJ| ttj|dik(sJt | d|zttj|dik(sJd|zttj|dtddik(sJd|zd|zzttj|d|dik(sJ||zdzttj|d|dik(sJ|dzttj |dik(sJ||zdzttjttj |didttj |didttj |d|didik(sJ||z|z|dz||zzk(sJ||zdz|dzd|z|zz|dzzk(sJ||zdz||z dzzd|dzzd|dzzzk(sJ||z|z||z||zzk(sJ|||zz||z||zzk(sJ|dz ttj|tdk(sJd|zdz |k(sJd|zdz ttjd|ztdk(sJd |zdz d|zk(sJd |zdz ttjd |ztdk(sJd |zdz d|zk(sJd |zd z ttjd |ztdk(sJd |dzz|d zzd|dzz|dzzz ttjd |zd |zk(sJd |zd z d z ttj|tdk(sJd |zd z d z |d |z z ttj|dztd k(sJ|dz ttj|dik(sJtd}td}||zttjdk(sJ||zttj||fk(sJ||zttj||fk(sJtdd}| tddk(sJ||ztdk(sJ||ztdk(sJy)Nr3r4r5r8)rr:rr[r9r:g@g?r;"123")z"ABC123"rg?ggy@@y@)rrrrEr@rFr>rrrrzrrCCONCATr r )r/r3r4r5r%rRrMs r)test_operationszTestSymbolic.test_operationss cN cN cN1uRXX1v....1uRZZ00001uRXX1a|44441uRXX1a}55551uRZZ!Q00001uRZZ!Q16666rQwwrT"((QG,,6dA2h6,1uRXX1v....1uRXX1ilA'>????1uq1u}RXX1a| <<<<A{d288aAq\::::!ttBJJA////AzT HHRZZ!Q(!RZZ!Q(!RZZqq"      A{adQUl***AzQTAEAI-14444AzQUQJ&!ad(QAX*====A{a!ea!em+++AE{a!ea!em+++A(7;;9Q<@@@@A aA hw{{AE9Q<HHHHA a!e###A hw{{AE9Q<HHHHA a!e###! aHW[[!a%1$NNNNQT AqD BAI1$45( KKQA;'' ''a!q Xgkk1.7l&<< N>@1fqjA=M N<QU adIaL IIIICDAs84444 g  g Avbii9999Avbii!Q0000Avbii!Q0000 sC rZd++++1u ----1u ,,,,r+ctd}td}td}t||f}|j||i|k(sJ||zj||i||zk(sJ||zj||i||zk(sJ|dzj||i|dzk(sJ||z j||i||z k(sJ|j|||zi||zk(sJ|j|||zit||z|fk(sJt|||j|||zit||z||k(sJt ||j|||zit ||z|k(sJy)Nr3r4r5r:)rr substituterr )r/r3r4r5rPs r)test_substitutezTestSymbolic.test_substitutes cN cN cN aV ||QF#q(((A!!1a&)QU222A!!1a&)QU2221  !Q(AqD000A!!1a&)QU222||QAJ'1q5000||QAJ'8QUAJ+????!Q'ZAE 3z!a%A7NO OOQ{%%q!a%j1U1q5!_DDDr+c jtd}td}td}td}td}td}t||f}td|k(sJtd|k(sJtd| k(sJtd ||zk(sJtd |d zk(sJtd ||zk(sJtd |dzk(sJtd||z k(sJtdtj |dzk(sJtdtj |dzk(sJtd||z|zk(sJtd||k(sJtd|||k(sJtd||k(sJtd|||k(sJtd|k(sJt tdtj||zk(sJtd||k(sJtdtddk(sJtd|k(sJtdtd||k(sJtdt||z|zfk(sJtd td!k(sJtd"td!dk(sJtd#td!d$k(sJtd%td&d'k(sJtd(td&d'k(sJtd)td&dk(sJtd*td&d'k(sJtd+td&dk(sJtd,td&dk(sJtd-td&d'k(sJtd.td&dk(sJtd/td&d0k(sJtd1td2d'k(sJtd3td dk(sJtd4ttd5td6k(sJtd7ttd tdfk(sJtd8ttd9|td :k(sJtd;ttd<td=td>ttd?td@fAk(sJtdBt|||k(sJtdCt|k(sJtdDtt|k(sJtdEt|k(sJtdFt|t|zk(sJtdGt|t|zk(sJtdHt|t|zk(sJtdIt|t|zk(sJtdJt||k(sJtdKt||k(sJtdLt!||k(sJtdMt#||k(sJtdNt%||k(sJtdOt'||k(sJtdPtjt||k(sJtdQtjt||k(sJtdRtjt!||k(sJtdStjt#||k(sJtdTtjt%||k(sJtdUtjt'||k(sJy)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)rrrrrPythonrFortranrr rrr rr rrrrr)r/r3r4r5rWr%rRrPs r)test_fromstringzTestSymbolic.test_fromstring's cN cN cN cN g  g  aV #!###% A%%%&!aR''''"a!e+++'"a!e+++'"a!e+++'"a!e+++'"a!e+++(X__=AEEE-(//BagMMM-(QUaK777&!QqT)))(#qAw...&!QqT))))$!Q///'"a''' ( ( 0 0 23671f= >=*%1---+, ';0OOOO*%*BJz,BB*-(AaD000-(Hq1uk_,EEEE% IcN222'"iQ&7777/*i[.IIII'"iq&9999)$ %(;;;;)$ %(;;;;)$ %(;;;;)$ %(;;;;'"iq&9999(#y'::::(#y'::::,-5,1OOOO% Igq$9999(#z!Q'7777+&*Yu5E5>t_+FF FF(#x1y|0L'MMMM/*hy7I789B1/GG GG ;=@H(#x(bM " y}=> A '"jAq&9999$8A;...% HXa[$9999$6!9,,,-(HQK(1+,EEEE+&(1+ *CCCC)$ hqk(AAAA'"hqkHQK&????(#uQ{222(#uQ{222'"eAqk111'"eAqk111(#uQ{222(#uQ{222*x/?/?@E!QKOOO*x/?/?@E!QKOOO*x/?/?@E!QKOOO*x/?/?@E!QKOOO*x/?/?@E!QKOOO*x/?/?@E!QKOOOr+cZ td td}td}td}|f fd } j||k(sJ|j||k(sJ|j||k(sJ||j|||k(sJ| j|||k(sJ||j|||k(sJ||j|||k(sJ |z|zj|d|z|zk(sJ || |z zj||||tdzk(sJt |j|t||k(sJt t  fd} || |z zj||hk(sJ ||hk(sJd }t || |z zj|  |||hk(sJd }t || |z zj|  hk(sJy) Nr3r4r5rWc|k(r|Syr$r.)r%r&r3s r) replace_visitz1TestSymbolic.test_traverse..replace_visitsAvr+r8rc|jtjur7|jd}j ||vrj |yy|jtj ur|vrj |yyy)Nr)r<rrjdataaddremover=)r%operfunction_symbolssymbolss r)collect_symbolsz3TestSymbolic.test_traverse..collect_symbolssrttrxxvvay $$T*7?NN4(#"q0@'@ A(A"r+c`|jtjur|j|yyr$)r<rr=rexprrs r)collect_symbols2z4TestSymbolic.test_traverse..collect_symbols2s#ww"))# D!$r+c|jtjur|S|jtjur|j |yyr$)r<rrjr=rrs r)collect_symbols3z4TestSymbolic.test_traverse..collect_symbols3s8ww"((" ww"))# D!$r+)rtraverserr set) r/r4r5rWrrrrrrr3s @@@r) test_traversezTestSymbolic.test_traversesa cN cN cN cN ! zz-(A---zz-(A---zz-(A---!}-1555!}-1555!}-1555!}-1555A ##M2q1uqyAAA!QU %Xm49:1il9K:LM MMQ{##M2eAqkAAA5%  Qq!a%[""?3A3&&&1a)### "% Qq!a%[""#3W=1aA,&&& "% Qq!a%[""#3W=1#~~r+ctdtd}td}jtdtdfk(sJdzjtdtdfk(sJdzjtdtdfk(sJdzdzjtdtdfk(sJtdjtdtdfk(sJ|jtd|fk(sJ||zjtd||zfk(sJ|zjtd|fk(sJ|z|zj||fk(sJ||zz|zj||z|fk(sJ||zz|zj||z|fk(sJtjt fdy) Nr3r4r5rrr8r9c,zjSr$) linear_solve)r3sr)z0TestSymbolic.test_linear_solve..sQU,@,@,Cr+)rrrpytestraises RuntimeError)r/r4r5r3s @r)test_linear_solvezTestSymbolic.test_linear_solves cN cN cN~~a Yq\9Q<$@@@@A##A&9Q<1*FFFFA##A&9Q<1*FFFFA ''*y|Yq\.JJJJ|((+ ! il/KKKK~~a Yq\1$5555A##A&9Q<Q*????A##A&9Q<*;;;;A ''*q!f444Q! a--a0QUAJ>>>A A ++A.1q5!*<<< l$CDr+ctd}td}td}t||tdfk(sJt||z ||fk(sJt||z ||fk(sJt||z ||fk(sJt||z||ztdfk(sJt|||z z|||zz|fk(sJt|||||z z z z||dzz||z|z fk(sJy)Nr3r4r6rr8)rrrr/r3r4rIs r)test_as_numer_denomz TestSymbolic.test_as_numer_denoms cN cN cNa Q ! $5555a!e$A...a!e$A...a!e$A...a!e$Q ! (====a!a%i(QQYN:::a!q1q5y/12q1a4xQ6KKKKr+ctd}td}td}|j|hk(sJ|jtk(sJ||j||hk(sJ||j||hk(sJ|||zj|||hk(sJ||||zj||||hk(sJ|||zj||hk(sJy)Nr3r4r6)rrpolynomial_atomsrrs r)test_polynomial_atomsz"TestSymbolic.test_polynomial_atomss  cN cN cN!!#s***!!#su,,,!&&(QqTF222!&&(QqTF222!q**,1q 999!qt --/AaD!A$<???!a))+!v555r+N)__name__ __module__ __qualname__r1rXrlr{rrrrrrrr.r+r)r!r!$sF 6O#b/.bC@>-@E$\P|<|E( L 6r+r!)!rnumpy.f2py.symbolicrrrrrrr r r r r rrrrrrrrrrrrrrrrr,rF2PyTestr!r.r+r)rsG <K64==K6r+