K i)$ddlmZmZddlmZddlmZmZddl m Z m Z ddl m Z mZddlmZddlmZmZmZmZmZmZddlmZed \ZZZZZd Zd Z d Z!d Z"dZ#dZ$dZ%dZ&dZ'dZ(dZ)y)) DerivativeFunction)Eq)Symbolsymbols)explog)cossin)S) pde_separatepde_separate_addpde_separate_mulpdsolve classify_pde checkpdesol)raisesz a b c x yc td\}}}}ttd\}}}}}} tt | |||t | |||t | ||z} t | | ||||||g} | t |||t || zt |||t ||zgk(sJy)Nx,y,z,tFTXYZu)rmaprrDrr) xyztFTXYZueqress b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/solvers/tests/test_pde.pytest_pde_separate_addr&s#JAq!Q8X.Aq!Q1 Aa1gqM1Qq!Wa=Qq!W5 6B 2qAw1qt 5C 1QqT1:c1Q4%j(!AaD!*S1Y*>? ?? ?c  td\ }}ttd\}}} tt   t  t  zt t fdy)NrrcJtgdS)Ndiv)r )rrr#rr"rsr%z#test_pde_separate..s$|B!Q!A$!uMr')rrrrrrr ValueError) rrrr r!rrr#rr"rs @@@@@@r%test_pde_separater-so#JAq!Q8X.Aq!Q1 Aa1gqM1Qq!Wa=Qq!W5 6B :MMNr'c  td\ tdd}td}ttd\ }} }td\}}t t  t  zt  zd t t fd t t fd t t fd t   gt   z t  z t z z gk(sJt    |gt   z t | |z t   z z gk(sJt t   |d zt  z}t|  | g}|t   z t |  |d z| zz gk(sJt d |z t ||||zt ||||d zd |d zz t ||||d zzt |||d zd t ||||||g}|t ||z t |||| ||z t ||||||zz z t |||||d z||zz z gk(sJt |d | t ||||||g}|t ||||||z | t |||z||z |d zt ||||z||z z ||d zzz gk(sJt ||||||g}||t |||z||z |d zt ||||z||z z||d zzzt |||| ||z gk(sJy)NrCT)realPhiFRTXYZuz r,theta,zrc LtgSNr)rrr#r"rrrsr%r+z'test_pde_separate_mul..+',R1aadAaG_Mr'cJtgSr4r5)rrr r#rrrsr%r+z'test_pde_separate_mul..-s%/AaAJ1qt Mr'c LtgSr4r5)rrr r#rrrrsr%r+z'test_pde_separate_mul..0r6r') rrrrrrrr,r)cr1Rrr!rthetawaver$rrr r#rr"rrrs @@@@@@@@@r%test_pde_separate_mulr@s#JAq!QsA 5/Ch 2Aq!Q1a+&KAua Aa1aj! q1aQ/ /!AaAJ2B BA FB MMO :MMN MMO B!Q QqT1Q7O < 1Q4AaD1Qq!Wa=.1a01Qq!Wa=1a3HHI JJ J B!Q QqT1Q41,> ? 1Q4AaD1QqT1:+ad*QqtQZ!_<= >> > a!QA1QqAw1%5 5 6D 41a1Q41, 7C 1QqT1a=1%q1q!}ad1Q4i'@A AA A AaC!C5!$a( (1SE1-=q!+D D adFQs1eQ'2 2 356s1eQ7GA5N OPQ SB 2s1eQ/!A$% 1D EC 1QqT1a=1% q{Aq ! !!E1+ - !E1+q1Qua[=) * !E1+ue$ad1UA;&67 89 99 9 CFAB 2q{QuXqt,< =C 1QuXue,QuX5 Bq1qzM!A$ Aa!am!3AaD!8 81QT6 AC CC C 2q{QqT1U8,< =C 1QqtQZ<!$q!tAadAqM'9!A$'>>1a4G qx & &qx /1 11 1r'cvtd\}}tdt}tdt\}}|||}|j|d|j|dz }t||||||g}|t ||||||z t ||||||z gk(sJy)Nzx tf)clszX Tr9)rrdiffr r)rrrBrrr"r#r$s r%test_issue_11726rEQs 5>DAq ( #A 5h 'DAq !QA 1q! $B r1qtQqTl +C 1QqT1a=1%a!amAaD&89 99 9r'ctd}t|ttzt|ttj tzzt |ttj tzz}d|ttzd|ttj tzz|ttj tz}t|ttzt|ttj tzzd|ttj tzz}t|ttz|ttj tzd|ttj tzz}tdz|ttzt|ttj tzzttz|ttj tzz}ttdzz|ttzt|ttj tzz|ttj tz}|||fD]}t|dk(rJ|||fD]}t|dk(rJy)NrBr9%1st_linear_constant_coeff_homogeneous)1st_linear_variable_coeff)rarrbrDr;r)rBeq1eq2eq3eq4eq5eq6r#s r%test_pde_classifyrS\s A AaF(Qq1v{{1~% %!Aa&++a.(8 8C AaF(Qq1v{{1~% %!A A 6C AaF(Qq1v{{1~% %!Aa&++a.(8 8C AaF(QqV[[^ #a!A A&6 6C Q$q1v+!Aa&++a.( (1Q3q1v{{1~+= =C AqD&1Q-!AaFKKN* *QqV[[^ ;CCoNB#MMMMNCoBB#AAAABr'c  ttddg\}}t|ttzt |ttj tzzt|ttj tzz}d|ttzd|ttj tzz|ttj tz}t|ttzt |ttj tzzd|ttj tzz}|||fD]}t|t|drJt|ttz|ttj tzd|ttj tzz d|ttzd|ttj tzzd|ttj tzz}|ttd|ttj tzzd|ttj tzz}t t|t|gdtdz |dtztz ztt tdz dtztdz z zfdtdz |dtztz ztt td z dtztd z z zfgk(sJ ||fD]}t|t|drJt }t|j|jz d tt fd y) NrBrrGr9rr:F c tdS)NF)solve_for_func)r)rPsol4sr%r+z"test_checkpdesol..|sCe4r')rrrKrrrLrDr;rrrr rlhsrhsrNotImplementedError) rBrrMrNrOr#rQrRsolrPrYs @@r%test_checkpdesolr^ks x#s $DAq AaF(Qq1v{{1~% %!Aa&++a.(8 8C AaF(Qq1v{{1~% %!A A 6C AaF(Qq1v{{1~% %!Aa&++a.(8 8CCo/2wr{+A.../ AaF(QqV[[^ #a!A A&6 6C AaF(Qq1v{{1~% %!Aa&++a.(8 8C Aa&1QqV[[^# #a!A A&6 6C sWS\73<8 9 Q!A#' "3r!A$w1QqT'9#::; !a%1Q37#C1R51Q3qu9(<$== >>@ @@ @Co/2wr{+A.../ #,C cgg #D !56r'c ttgd\}}}}|tt|ttj tz|ttj tz}t |t |tt|ttz tt dz tdz z zk(sJt ||t |tt|ttz tt dz tdz z zk(sJt ||t |tt|ttz tt dz tdz z zk(sJy)N)rBrGHr9)solvefun)rrrrrDrrr)rBrr`rarMs r% test_solvefunrcsX34JAq!Q Aa&1Qq6;;q> !AaFKKN 2C 3<2a1gqQxQBqD1Q3J'?@ @@ @ 3 #r!Aq'1QU8C1qs O3K'L LL L 3 #r!Aq'1QU8C1qs O3K'L LL Lr'c >ttddg\}}|tt}d|z|j tz|j tz}t |dk(sJt |}|t||ttz tt tz zk(sJt||dsJdd|j tz|z zd|j tz|z z}t |dk(sJt |}|t||dtzdtzz ttd tzd z td tzd z z zk(sJt||dsJ|d |j tzzd |j tzz}t |dk(sJt |}|t||d tzd tzz td tztdz d tztdz z zk(sJt||dsJt|zt|j tzzt|j tzz}t |}t||dsJy)NrBrr9rHrrG iU)rrrrrDrrrrrr rKrLr;rBrr"r#r]s r%.test_pde_1st_linear_constant_coeff_homogeneousrms> x#s $DAq !QA 1qvvay166!9 $B  I II I "+C "Q!a%aR!V,- -- - r3  "" " aq k!m !&&) A .B  I II I "+C "Q!A#!) S!B%"qtAvby)@%AAB BB B r3  "" " aq k aq k *B  I II I "+C "Q!A#!) SAaeac!B%i)?%@@A AA A r3  "" " 1q{ Qqvvay[ (B "+C r3  "" "r'c ttddg\}}|tt}d|j tzd|j tzzd|zzt tdtzzz }t |}|t|tt|dtzdtzzt tdz zt tdtzzdz zt t zk(sJt|d k(sJt||d sJ|j t|z |j t|z zd zt ttz|z z }t |}|t|tt|ttz t t dz tdz z zt ttzdz zk(sJt|d k(sJt||d sJd|z|j t zd|j tzzttz}t |}|t|tt|dtztzt tdz dtzdz z zdttzdz z ttdz z k(sJt|d k(sJt||d sJ||j tz|j tzttzz}t |}|jt|ttttzttz dzdz zttzdzdz z |ttz t t dz tdz z zzdz jk(sJt|d k(sJt||d sJ||j tz|j tzttz}t|d k(sJy) NrBrrerUrGr9)1st_linear_constant_coeff"1st_linear_constant_coeff_Integralrr:)rrrrrDrrrrrr r expandr rls r%"test_pde_1st_linear_constant_coeffrts x#s $DAq !AA AFF1I!&&) #ac )CAaCL 8B "+C "QqVqsQqSy\#ac(SQqS\"_,c1"g57 77 7   * ** * r3  "" " &&)A+!&&)A+ & *c!a%jl ;B "+C "Qq!WaAhsA2a4!A#:6QUAEF FF F   * ** * r3  "" " 1q z AaffQiK '#a& 0B "+C "Qq!W 1Q37C!ac!e $ $qQxz 1CF1H <> >> >   * ** * r3  "" " QVVAY "QqS (B "+C ::<2a1g AQ 1 Az!|+aAhsA2a4!A#:.FFJLLRFH UU U   * ** * r3  "" " QVVAY "SV +B   * ** *r'c ttddg\}}|tt}||j tz|j tztdztzz}t |d}gd}t |j|k(sJ|ddk(sJ|d d k(sJ|d jt|tttdz tztdzzdtztzzd tzz dtzz |ttz tt dz tdz z zzd zjk(sJy) NrBrr9allhint)rqrrdefaultorderrzr:ryrqreri) rrrrrDrsortedkeysrsrr)rBrr"r#r]r|s r%test_pdsolve_allr}s6 x#s $DAq !AA QVVAY "QT!V +B "U #C BD #((*  %% % w<1   y>8 88 8 * + 2 2 41Q7 Aa!Q$1Q1$qs*Qq1uXc1"Q$1*o-EEI9KKQ68 TT Tr'c jttddg\}}|tt}t|j tzt|j tzz tdz|zztdzz }t |d}|t ||ttzttdzdz zdzk(sJt||dsJtdz|zt|j tzzttz|j tzz}t |d}|t ||ttt zttdz dz zk(sJt||dsJttdzz|zt|j tzz|j tz}t |d}|t ||dtztdzzttd z d z zk(sJt||dsJttdz|j tztz}t |d}|t |ttdtzzdz |tzk(sJt||dsJtdtz|j tzt|zz|z }t |d}|t ||ttt tdz ztdtzzdz zk(sJy) NrBrr9rJrwr:rrorG) rrrrrDrrrrrls r%test_pdsolve_variable_coeffrs x#s $DAq !QA AFF1IAFF1I &Aa /!Q$ 6B "6 7C "Q!A#s1a46{*Q./ // / r3  "" " Aa!AFF1I+ !AFF1I -B "6 7C "Q!CG) S!Q$q\12 22 2 r3  "" " 1a4AaffQiK !&&) +B "6 7C "Q"Q$A+sAqD57|34 44 4 r3  "" " QAFF1I  "B "6 7C "Q#bd) A !,- -- - r3  "" " QqS166!9 ! #a 'B "6 7C "Q!S!QUC1I!5a!7889 99 9r'N)*sympy.core.functionrrrsympy.core.relationalrsympy.core.symbolrr&sympy.functions.elementary.exponentialrr (sympy.functions.elementary.trigonometricr r sympy.corer sympy.solvers.pder rrrrrsympy.testing.pytestrrKrLr;rrr&r-r@rErSr^rcrmrtr}rr'r%rsx;$/=?((' $ 1aA@O/1d: B6*M#4#*L T:r'