K i&dZddlmZmZmZmZddlmZddlm Z m Z ddl m Z ddl mZmZddlmZmZddlmZdd lmZmZdd lmZd Zd Zd ZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*edZ+dZ,dZ-dZ.d Z/y!)"z Test sparse rational functions. )fieldsfield FracField FracElement)ring)ZZQQ)lex)raisesXFAIL)symbolsE)Rational)explog)sqrtctdtt}tdtt}tdtt}|j|jdk(sJ|j |jdk(sJ|j|jk(sJ|j |j k(sJ|j|jk7sJ|j |j k7sJy)Nx,yx,y,zr)rrr xgensy)F1F2F3s c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/polys/tests/test_fields.pytest_FracField___init__rs 5"c "B 5"c "B 7B $B 442771:   442771:   44244<< 44244<< 44244<< 44244<<cHtdt\}}}}t|sJyNrrr hashFrrzs rtest_FracField___hash__r's!w#JAq!Q 7N7rctdtdtdtdk(sJtdtdtdtdk7sJtdtdtdtdk7sJtdtdtdtdk7sJtdtdtdtdk7sJy)Nrrr)rr rrrtest_FracField___eq__r*s " a E'2$6q$9 99 9 " a E'2$6q$9 99 9 " a E'2$6q$9 99 9 " a E%$4Q$7 77 7  A %"4Q"7 77 7rc td}tttt|t|ftt }|j \}}}tt|tt|dztt|dzdz zdzzt|dzz ||dz|dzz|zfk(sJt|td|z t||tddzftt }|j \}}}}t|dz t|zd|dzzztd|z t|dz zz|dzz |d|jdzz|z|j|z|zzd|z|zz |dzz fk(sJt|t|t|t|zftt }|j \}}}t|dz||t|ztddzzz d|t|dzzz z ||j|dzz|j|zz |dzz||zz |jdz|dzz|z|j|dzz|zzz fk(sJy)Nrr) r rrrrr rrrr rr) rr%eexexex_lgx3srts r test_sfieldr7%sf A1c#a&k3q6*B4A&&KAtR #a&SVaZ#c!fqj/!*;;AFFMAr2r AaCQ<!Q$&AaCAqL(99!Q$> ? QqssAvXb[133r6"9 $qtBw .A 56 77 7 1c!fd1s1v:./S9AJAr3 1q5Q!c!f*r!Qx!7781a#a&!)m;LL M BE ACCG#b!e+bf4 SS!VBE\# BE # -/ 0 00 0rcTtdt\}}}}t||z|z sJyr!r"r$s rtest_FracElement___hash__r98s*w#JAq!Q !A;;rctdt\}}}}||zdz |z}|j}||k(sJd|jd<||k7sJy)Nrr,)rrr)rrcopynumer)r%rrr&fgs rtest_FracElement_copyr@<sVw#JAq!Q !AaA A 6M6AGGI 6M6rctdt\}}}}d|dzz|z||z|zz d|dzzdzz |j\}}ddzz|z|z|zz d|dzzdzz }|k7sJj|k(sJtd\}}ddzz|z|z|zz d|dzzdzz }|k7sJj|||k(sJt t fdy)Nrr,r-r;rc&jSN)as_expr)Xr>srz*test_FracElement_as_expr..Vsqyy|r)rrr rDr ValueError) r%rrr&YZr?rEr>s @@rtest_FracElement_as_exprrJFsw#JAq!Q 1a4AaCE AadFQJ'AiiGAq! 1a4AaCE AadFQJ'A 6M6 99;!  gGAq! 1a4AaCE AadFQJ'A 6M6 99Q1  "" " :+,rc td\}}t||ft\}}}jd}|dk(rj |sJjt dd}|ddz k(rj |sJj}||k(rj |sJjt ddz}||t ddzk(rj |sJjdz }|d|z k(rj |sJj|z|z}|||z|zk(rj |sJj|z|z }|||z|z k(rj |sJj|z|z|zzz}|||z|z||zz|zk(rj |sJj|z|z|zzz|zdzz }|||z|z||zz|z||zdzz k(rj |sJjdz|z|zdz|dzzzdz}||dz|z|z|dz|dzzzdzk(rj |sJt tfdt tfdttdzjjd ztsJttdzjjdztsJtttt ddjjttsJy) Nrrr,r;r-c,jdzS)Nr-) from_exprr%rsrrFz,test_FracElement_from_expr..zsq{{1a40rcDjdztdzS)Nr;r-)rMrrNsrrFz,test_FracElement_from_expr..{sq{{1Q3a=9ri)r rrrM is_elementrr rG isinstance get_fieldconvertrrr)rr&rErHrIr>r%rs @@rtest_FracElement_from_exprrTXs[gGAq!1ay"%JAq!Q AA 6all1o% % HQN#A !Q;1<<?* * AA 6all1o% % HQqM!O$A (1a. Q\\!_4 4 AaCA !8 Q' ' AaCEA !A:!,,q/) ) AaCEA !A:!,,q/) ) AaCEAaCK!O$A !A! a ALLO3 3 QqSUQqS[1_qsQw/0A 1Q1q1Q37+ + Q? ? AqDF1Hq!tAqDy(1,-A 1Qq1a419$q( (Q\\!_< < :01 :9: bAh((*221r7;   bAh((*221r7;   bXa^,-779AA!D  rctd\}}}tj||}|j|}|||z}|j|j |||zk(sJ|jj |||zgk(sJ|j |j |dk(sJtj||}|j|}|||z}|j|j |||zk(sJ|jj |||zgk(sJ|j |j |dk(sJ||||z}|j|j |||zk(sJ|jj |||zgk(sJ|j |j |dk(sJ||||z}|j|j |||zk(sJ|jj |||zgk(sJ|j |j |dk(sJy)Nza b xr)r r frac_fieldr= poly_ringcoeffsdenom)abrrrfracrF4s rtest_FracField_nestedr^s6gGAq! q! B q B a!e9D ::aQ/ // / ::   2a!e9+ -- - ::a+ ++ + a B q B a!e9D ::aQ/ // / ::   2a!e9+ -- - ::a+ ++ + bQi=D ::aQ/ // / ::   2a!e9+ -- - ::a+ ++ + bQi=D ::aQ/ // / ::   2a!e9+ -- - ::a+ ++ +rctdt\}}}|dd|z cxkrd|dzz cxkr d|dzz ksJJ|dd|z cxkrd|dzz cxkr d|dzz ksJJd|z d|z cxkrd|z cxkr||z cxkr d|dzz ksJJd|z d|z cxkrd|z cxkr||z cxkr d|dzz ksJJd|dzz d|dzz cxkDrd|z cxkDr |dkDsJJd|dzz d|dzz cxk\rd|z cxk\r |dk\sJJd|dzz ||z cxkDrd|z cxkDrd|z cxkDr d|z kDsJJd|dzz ||z cxk\rd|z cxk\rd|z cxk\r d|z k\sJJy)Nrrr-r,)rr)r%rrs rtest_FracElement__lt_le_gt_ge__rasE2GAq! Q4!A# '!Q$ '1a4 '' '' ' Q41Q3 *!AqD& *AadF ** ** * a4!A# *! *ac *AadF ** ** * a41Q3 .!A# .1 .!Q$ .. .. . QT6AadF 'QqS '1Q4 '' '' ' QT6Qq!tV *qs *ad ** ** * QT6AaC *!A# *! *bd ** ** * QT6QqS .AaC .1Q3 ."Q$ .. .. .rcxtdt\}}}d|zdz |z }d|zdz|z }| |k(sJ| |k(sJy)Nrr; r`)rr )r%rrr>r?s rtest_FracElement___neg__rdsP 5" FAq 1q! A A1 A 27N7 27N7rctdt\}}}d|z d|z }}||z||zcxk(r||z||zz k(sJJ||jjdz|jjd|zcxk(r d|zk(sJJtdt\}}}|dzd|zk(sJ|tddztdd|zcxk(rd|zdzdz k(sJJtdt\}}}td|\}}}} } ||z|z|||zzz }t |j d||zd k(sJt |jd||zd k(sJtdt\} }}td| \}}}} } ||z|z|||zzz }t |j d||zd k(sJt |jd||zd k(sJy) Nrrrr-r,r;u,vx,y,z,t)rrrrrrrr)rrrrrirr rrrdictr=rY r%rrr>r?FuvuvFxyztr&tRuvs rtest_FracElement___add__rts 5" FAq Q3!qA q5AE *a!eac] ** ** * qvv{{1~ Q!!3 :qs :: :: : 5" FAq q5AE>> r!Aw;"Qq'A+ 4!A#'1 44 44 4UBHC19c*NE1Qq 1q1qs7A =1AaC@ @@ @ =1AaC@ @@ @E2HC19c*NE1Qq 1q1qs7A =1AaC@ @@ @ =1AaC@ @@ @rc|tdt\}}}d|z d|z }}||z | |z||zz k(sJ||jjdz |jjd|z cxk(rdk(sJJtdt\}}}|dz d|z k(sJ|tddz tdd|z cxk(rd|zdz dz k(sJJtdt\}}}td|\}}}} } ||z|z |||zz z }t |j d||zd k(sJt |jd| |zd k(sJtdt\} }}td| \}}}} } ||z|z |||zz z }t |j d||zd k(sJt |jd| |zd k(sJy) Nrrrr,r;rfrgrhrjrkrms rtest_FracElement___sub__rws 5" FAq Q3!qA q5aR!VacN "" " qvv{{1~ Q!!3 8q 88 88 8 5" FAq q5a!eH   r!Aw;BqGaK. 7QqS1WaK 77 77 7UBHC19c*NE1Qq 1q1qs7A ="AaC@ @@ @ =1A2a4@ @@ @E2HC19c*NE1Qq 1q1qs7A ="AaC@ @@ @ =1A2a4@ @@ @rctdt\}}}d|z d|z }}||z||zcxk(r d||zz k(sJJ||jjdz|jjd|zcxk(r |dzk(sJJtdt\}}}|dzd|zk(sJ|tddztdd|zcxk(r|t ddzk(sJJtdt\}}}td|\}}}} } |dz|z|zdz|dz | z| |z|zz dz z }t |j|dzdd k(sJt |j|dz | |zd d k(sJtdt\} }}td| \}}}} } |dz|z|zdz|dz | z| |z|zz dz z }t |j|dzdd k(sJt |j|dz | |zd d k(sJy) Nrrrr-r,r;rfrg)rrrrrirv))rrrr)rrrrri) rr rrrrrlr=rYrms rtest_FracElement___mul__rzs0 5" FAq Q3!qA Q3!A# AaC   QVV[[^ qvv{{1~a/ 71a4 77 77 7 5" FAq Q3!A#:: R!W91Q 5Qx1~%5 55 55 5UBHC19c*NE1Qq a%1qAE19qs1u,q01A =1q5B BB B =1q51TVW WW WE2HC19c*NE1Qq a%1qAE19qs1u,q01A =1q5B BB B =1q51TVW WW Wrc tdt\} }d z d|z }}||z | z k(sJ |jjdz |jjd z cxk(rdk(sJJtdt\} } dzd zk(sJ tddz tdd z dzcxk(r t ddzk(sJJt t fdt t fdt t fd td t\}}}td |\} }}} ||z |zz }t|jd ||zik(sJt|jd dik(sJ |z||zz }t|jd dik(sJt|jd ||zik(sJtd t\} }}td | \} }}} ||z |zz }t|jd ||zik(sJt|jd dik(sJ |z||zz }t|jd dik(sJt|jd ||zik(sJy)Nrrrr,r;rvcdz SNrr)rsrrFz.test_FracElement___truediv__..s acrcdz z SNrr)r~srrFz.test_FracElement___truediv__..aQircz z SrCr)r~srrFz.test_FracElement___truediv__..rrrfrgriry) rr rrrrr ZeroDivisionErrorrlr=rY) r%rr>r?rnrorprqr&rrrsrs @rtest_FracElement___truediv__rsu 5" FAq Q3!qA Q3!A#:: QVV[[^ qvv{{1~a/ 41 44 44 4 5" FAq Q3!A#:: R!W9AaR ;1Xa^+; ;; ;; ; k* /0 /0UBHC19c*NE1Qq 1qs A =\1Q3/ // / =\1- -- - 1qs A =\1- -- - =\1Q3/ // /E2HC19c*NE1Qq 1qs A =\1Q3/ // / =\1- -- - 1qs A =\1- -- - =\1Q3/ // /rctdt\}}dz d|z }}|dzddzz k(sJ|dzd|dzz k(sJ||zdzddz|dzzz k(sJ||zdz|zdzk(sJttfdy)Nrrr,cz dzS)Nrr)r~srrFz*test_FracElement___pow__..7sq1urkr)rr r r)r%rr>r?rs @rtest_FracElement___pow__r,s 5" FAq Q3!qA a41QT6>> a41QT6>> aC!8q!Q$q!t)} $$ $ aC"91q   12rctdt\}}}}|dz|z|dzz j|d|z|dzz k(sJy)Nrr-r)rrdiffr$s rtest_FracElement_diffr9sLWb!HAq1 TAXA  $ $Q '1Q3A; 66 6rctdt\}}}}|dzd|zz|z ddd}|dk(rt|trJt t fdy)Nrr-r,rr.cdddS)Nrrr))r>srrFz+test_FracElement___call__..Esa1ajr)rrrQrr r)r%rrr&rr>s @rtest_FracElement___call__r>s[Wb!HAq1 A!QA !Q A 6*Q 44 4 01rctdt\}}}tdtd}|dzd|zzz j|dd|jz|jz k(sJt t fdy)Nrzy,zrr-r,c(jdSr})evaluater>r&srrFz+test_FracElement_evaluate..MsajjA&6r)rrrrr&r r)r%rrFyzr>r&s @@rtest_FracElement_evaluaterGsrWb!HAq1 r 1 C A!QA ::a qwsuu} ,, , 67rctdt\}}}|dzd|zzz j|dd|zz k(sJttfdy)Nrr-r,rc(jdSr})subsrsrrFz'test_FracElement_subs..TsaffQlr)rrrr r)r%rrr>r&s @@rtest_FracElement_subsrOsXWb!HAq1 A!QA 66!Q<1Q3q5   23rcyrCr)r)rrtest_FracElement_composerVsrctdtdt\}}}j|dk(sJj|dk(sJt t fdt t fdy)NrZzx y zrrc&jdSrindex)r%srrFz&test_FracField_index.._qwwqzrc&jSrCr)r%rZsrrFz&test_FracField_index..`rr)r rr rr rG)rrr&r%rZs @@rtest_FracField_indexrYsa Aw#JAq!Q 771:?? 771:?? :)* :)*rN)0__doc__sympy.polys.fieldsrrrrsympy.polys.ringsrsympy.polys.domainsrr sympy.polys.orderingsr sympy.testing.pytestr r sympy.corer rsympy.core.numbersr&sympy.functions.elementary.exponentialrr(sympy.functions.elementary.miscellaneousrrr'r*r7r9r@rJrTr^rardrtrwrzrrrrrrrrr)rrrs&DD"&%.!'=9 80&-$*Z,6 /A4A4X4$0L 37 2284  r