K iFdZddlmZmZmZmZddlmZddlm Z ddl m Z m Z m Z mZmZddlmZddlmZddlmZmZdd lmZdd lmZdd lmZmZdd lmZdd l m!Z!ddl"m#Z#m$Z$ddl%m&Z&m'Z'm(Z(m)Z)m*Z*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5e$dZ6dZ7dZ8y)zOTests for algorithms for partial fraction decomposition of rational functions. )apart_undetermined_coeffsapart apart_listassemble_partfrac_list)Expr)Lambda)EIRationalpi all_close)Eq)S)DummySymbol)sqrt)Matrix)Polyfactor)together)RootSum)raisesXFAIL)xyabccBtddk(sJtdtdk(sJtdzdztdzz dtdzz tzdz }}t|d|k(sJt|d|k(sJdtdzz tdzz ddtzz ddtzz z }}t|d|k(sJt|d|k(sJdtdzz tdzz ddtzz dz ddtzz dz z}}t|d|k(sJt|d|k(sJtttzdzttz z tdz ztdtz ttzzttzzttzdztdz zttz z zk(sJtt tdzdztdzz ttt tdz dtdzz ztk(sJttdz t tdz k(sJtt zdtzt z z t d dt zdtzt z z tjz}}t|td|k(sJt|td|k(sJtt zdtzt z z d tzdtzt z z dz }}t|t d|k(sJt|t d|k(sJttd y) NFfullTc@tdtdzz tdzz S)Nr r!)rrre/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/polys/tests/test_partfrac.pyztest_apart..=saQiQ.?(@r*) rrr r rrr rHalfrNotImplementedErrorfgs r+ test_apartr2s 8q== A;!   qD1Hq1u q!a%y1}q0qA  1 $$ $  ! ## # a!e9a!e aQi!QU)3qA  1 $$ $  ! ## # a!e9a!e b!a%jlQAYq[8qA  1 $$ $  ! ## # !A#'AF#QU+Q / A" qsadQha0!b&99 :: : QTAXA&*A ."QUQAY5F2J JJ J 1a=AaC   aC!A#'?HQN1,acAg6?qA AE "a '' ' AD !Q && & aC!A#'?AaC1qMA-qA AE "a '' ' AD !Q && &  @Ar*c tddd}t|tdtz dtdzz z tdzdzgddtzz tjtdzz z dtdzz dtdzz z ggk(sJy)Nr!c4dt|zdzz t|zz S)Nr )r)ijs r+r,z#test_apart_matrix..As!QUQY-Q"7r*r )rrrrr-)Ms r+test_apart_matrixr9@sq!78A 8v 1q!a%y1q5B-( AaCAFFQU# #QAYAE%:;  r*cttdzzdtzdtztzztdzzzdtztztdzz ttdzzztdzzzdtztzdtztdzzztzztdzz }tdztdzzdtztzdtztdzzztdzzzdtztztztdzztdztdzzztdzzzdtztdzzdtztztdzzztzztdztdzzz}t ||z tdtz dttzdzz z tdztttztzdzzz z k(sJt dttzttzzttzzz tdttz ttz zttzzz dttz ttz zttzzz z dttz ttz zttzzz zk(sJy)Nr&r!r'r7r )rrrrrr/s r+test_apart_symbolicr;Is !Q$!A#!A+q!t##qs1uq!t|a1f'.mul2Ys1dU++r*r!r r') sympy.corer=rr)rAr0r1r=s @r+_make_extension_examplerCVs, Q$(QQ AEA:-1uqs{Q?A!aP QA 4DG a 4DG a  ! 4AQ  ! 4AQ  ! 4Q     4Q    A a4Kr*cdtdzdzz }tttzz tttz z z }t|t|k(sJt|d|k(sJttdz ttzzz }tt t|j |k(sJt \}}ddlm}|d5t|ttdh|k(sJ dddy#1swYyxYw)Nr!r  extensionT)gaussianr) dotprodsimp) rr rrrexpandrCsympy.matricesrHr)r0r1rHs r+test_apart_extensionrKgs 1a4!8 A 1q5 Aq1uIA a A %% % T "a '' ' AEAE?A (58$++- .! 33 3 " $DAq+ T 5Qd1gY/1444555s "C66C?c`t\}}t|ttdh|k(sJy)Nr!rE)rCrrrr/s r+test_apart_extension_xfailrMzs+ " $DAq A$q' +q 00 0r*cdtdzdzz }t|d|k(sJt|djttdzdzt t t tt z z d dz sJdtdztzdzz }t|d|k(sJt|djttdztzdzt t t dzt dd zt t d d zz t d d ztt z z dsJdtd zdzz }t|dt d d tdzdtdzzz dtzzd z td ztdzz tdzztz dzz zt dd tdzz zk(sJt|djttd ztdzz tdzztz dzt t t tt z z d d z t dd tdzz zsJy)Nr r!Fr"T)autor' r&r$r%)rrdummy_eqrrrr )r0s r+test_apart_fullrTsA 1a4!8 A  1 $$ $   ' ' A6!QAY/e < @@ @ 1a4!8a<A  1 $$ $   ' '1q1 q1a4B'!HQO*;;hq"oMPQTUPUVW^c e ff f 1a4!8 A   "aAqD1QT6MAaC/!3adQTkAqD6H 7 7 QNQU+ , ,, ,   ' ' A1q!t#a'!+q!QU)5 * **+ ,/71~A.F G HH Hr*cvdtdzzdtdzzzdtzzdzdtdzzd tdzzzd tdzzzd tzzd zz }d tdzz dtdzz zdtdzz zdtdzz z}t|dj}t||ddsJy)NgV/;>r'gO6rZ>r!gJm?g(\µ?g=r&g6->gak?gv>?g?g ,`@g {@@g=?gX 7@g``@G?gp"fD@g*u?gV 0@Tr"gMbP?gh㈵>)rtolatol)rrevalfr )r0expectedf_aparts r+test_apart_full_floatsr[s AqD #6q!t#;; a  "' ( QT!$71$<< ad " #%5a%7 8:= >  A !../ A/ 0 1 Q!11 2 3 Q!11 2 3 AD!'')G WhT == =r*ctdtzdz }ttdztdzz tdzz tdzzdtdzzz dtzzdz }tdz tdzz tdzz d ztdztdzz dtzz dzz dtdz z z}t|||k(sJtdtd }tttzttzztd }dttz ttzzz dttz ttzzz z }t|||k(sJy) Nr!r'rRrPr$r r&zZZ[a,b]domain)rrrrr)pqrs r+test_apart_undetermined_coeffsrds! QqS1W A QTAqD[1a4 !Q$ &1a4 /!A# 5 9:A Q$A1 q 1a4!Q$;1#4q#89Aq1uIEA $Q *a // / Q)$A a!ea!e_a 2A AEAE?a!a%!a%11A $Q *a // /r*c ddlm}fdtdtdtd}}}td}dtzd td zzz d td zzd tzz z }t |t|d  }dt td d tdt |d z |dt|d t|| tzdfgf}||sJt d td zd z z t|d  }dt dtdt |d zd z |dt||d z t|| tzdfgf}||sJdtdzd tdzzz d td zzz dtd zzztzd z z }t |t|d  }dt dtdt |d z |dt|dt|| tzdft |d zdz |dt|d|zd z t|| tzd ft |dz|dt|dt|| tzdfgf}||sJy)Nr)numbered_symbolsct|ttfvrtfdt ||DS||k(xs|j |S)Nc36K|]\}}||yw)Nr)).0r5r6rSs r+ z4test_apart_list..dummy_eq..s<$!Qx1~.dummy_eqsA 7tUm #<#a)<< <Av&A&r*w0w1w2rr7r!r'rPw)dummiesr%QQr_ZZr $r$r&) sympy.utilities.iterablesrfrrrrrr r) rfrprqrr_ar0gotansrSs @r+test_apart_listr~s_:' vd|VD\BB sB A!Q$1QT6AaC<(A Q#3C#8 9C tHQNAd3 rAvr$ 'ArB378KQ OP RC C   Q1QZ,.fooFN__name__ __module__ __qualname__is_commutativer)r*r+foorr*rr rrrrrers r+&test_noncommutative_pseudomultivariatersqd 1qs7 A 1q5 A SV CF ** * 3q6?aAh && &r*cGddt}ttttzzz }ddtzz }t||z||zk(sJy)NceZdZdZy) test_noncommutative..fooFNrr)r*r+rrrr*rr rrs r+test_noncommutativersKd 1qs7 A 1q5 A SU q35y (( (r*ctdtztdzdzz tdz dtdzdzzz z ddtdzzz zdtz z dtzdztdzdzz dz dtdzz dz zdtz z k(sJy)Nr!r r')rrr)r*r+test_issue_5798rs  !QTAX!a%!QTAX,//!QAY-?!A#E G 1q1a4!8QAE1,qs2 33 3r*N)9__doc__sympy.polys.partfracrrrrsympy.core.exprrsympy.core.functionrsympy.core.numbersr r r r r sympy.core.relationalrsympy.core.singletonrsympy.core.symbolrr(sympy.functions.elementary.miscellaneousrsympy.matrices.densersympy.polys.polytoolsrrsympy.polys.rationaltoolsrsympy.polys.rootoftoolsrsympy.testing.pytestrr sympy.abcrrrrrr2r9r;rCrKrMrTr[rdr~rrrrr)r*r+rs !&>>$"-9'0.+.##$BN $"5&1 H0>. 0>a'')3r*