K i!RZdZddlmZddlmZddlmZmZmZm Z ddl m Z m Z m Z mZmZmZddlmZddlmZmZddlmZdd lmZmZdd lmZmZdd lmZdd l m!Z!m"Z"m#Z#dd l$m%Z%ddl&m'Z'm(Z(ddl)m*Z*m+Z+ddl,m-Z-m.Z.m/Z/ddl0m1Z1m2Z3m4Z4m5Z6m7Z7m8Z8ddl9m:Z:ddl;mZ>ddl?m@Z@ddlAmBZBmCZCddlDmEZEmFZFejZHdZIdZJdZKdZLdZMdZNdZOdZPd ZQd!ZRd"ZSd#ZTd$ZUd%ZVd&ZWd'ZXeFd(ZYd)ZZd*Z[d+Z\d,Z]d-Z^eFd.Z_d/Z`d0Zad1Zbd2Zcd3Zdd4Zed5Zfy6)7zFTests for tools for solving inequalities and systems of inequalities. )Sum)Function)IRationaloopi)EqGeGtLeLtNe)S)DummySymbol)Abs)explog)rootsqrt) Piecewise)cossintan)Integral)AndOr)PolyPurePoly) FiniteSetIntervalUnion)reduce_inequalitiessolve_poly_inequalityreduce_rational_inequalitiessolve_univariate_inequalityreduce_abs_inequality_solve_inequality)rootof)solve)solveset)Mod)xy)raisesXFAILc*ttdtdtjgk(sJttdtdtj gk(sJtt tdztdtdtddgk(sJy)Nrz==>TF) psolverr-rRealsEmptySetrr!rk/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/solvers/tests/test_inequalities.pytest_solve_poly_inequalityr;$sr $q!*d #y 00 0 $q!*d # | 33 3 (1q5!$c *xBe/L.M MM Mr9c jtttdzdggtdtdk(sJtt tdzdggtdtdk(sJtt tdzdggtdt jk(sJtjr8tttdzdggtdt jk(sJtt tsJtttdzdggtdtdjt jk(sJtttdzdggtdtdjt jk(sJtttdzdggtdtddk(sJtt tdzdggtdtddk(sJtt tdzdggtdtddddk(sJtttdzdggtdt!tt dtdtk(sJtttdzdggtdtddjt jk(sJtttdzdggtdtddjt jk(sJtttdzdggtdtd dj#k(sJtt tdzdggtdtd dk(sJtt tdzdggtdtd dddk(sJtttdzdggtdt!tt$ d tdt$k(sJtttdzdggtdt!tt$ d d tdt$d k(sJtttdzdggtdtd djt jk(sJt'd}tt tdzdz dttdzdz dggtdt jk(sJtt tdzdz dttdzdz dggtdtddk(sJtt tdzdz dttdzdz dggtdt!t| dddtd|ddk(sJtt tdzdz dttdzdz dggtdt!t| dddtd|ddk(sJtt tdzdz dttdzdz dggtdt!t| dddtd|ddk(sJtt tdzdz dttdzdz dggtdt!t| dddtd|ddk(sJtt tdzdz dttdzdz dggtdt!t| dddtddddtd|ddk(sJtt tdzd ggtt j(usJy) NrF relationalr2r4T?g) right_open) left_open)r%r r-r r r rr7is_realr r6r!rr complementrr"evalfinfrfalse)ss r:+test_reduce_poly_inequalities_real_intervalrI*s ' QT1+u .1:1 >> > ' QT1+u .1:1 >> > ' QT1+u .12 << <99 ( QT1+u .  4 4"*B3"34 4 ( QT1+u .! ( )) ) ( QT1+u .! ( )) ) ( QT1+u .1:2q1A BB B ' QT1+u .19"a AA A ' QT1+u .19"at1L MM M ' QT1+u . hsB!R1 22 2 ( QT1+u .Q""177+ ,, , ( QT1+u ."a##AGG, -- - (" 1c+*)E +.7c.B.H.H.J KK K ' QT3-1 03;D#3F GG G '" 1c+*)E +.6tS$.M NN N ' QT3-1 0 htT"HS#$67 88 8 ( QT3-1 0 htTd3cT* , ,, , (" 1c+*)E +$''0 11 1 QA '" 1q!+A1o*')()*u >AB LL L '"QTAXq/2 1q!<*)e -09"a0@ AA A ' QTAXq/2adQh? +,aE 8QBE518Aq%3O P QQ Q ( QTAXq/2adQh? +,aE 8QBE40(1au2M N OO O ( QTAXq/2adQh? +,aE 8QBD%0(1a2M N OO O ( QTAXq/2adQh? +,aE 8QBD$/!Qd1K L MM M ( QTAXq/2adQh? +,aE 8QBD$/"at1LAtT"$ $$ $ ("QT3-(91 = HH Hr9cj tttdzdggtdttdk(sJtttdzdggtdttdk(sJtt tdzdggtddk(sJtt tdzdggtdt t t tt ttk(sJtttdzdggtdt ttt t ttttdk(sJtttdzdggtdt ttt t ttttdk(sJtjtdfD]}|tz}tttdz|ggtdttt| tt|k(sJtttdz|ggtdt t t| ttt|k(sJtt tdz|ggtdt t t | tt t|k(sJtt tdz|ggtdt tt t|tt t|t tt| t | tk(sJtttdz|ggtdt tt t | tt t| t t |tt t|k(sJtttdz|ggtdtt t | tt t| t t | tt t|t t |tt t|k(rJy)Nr=rTr>Fr@) r%r r-r r r rrr rrOner)onerFs r:0test_reduce_poly_inequalities_complex_relationalrMus ' QT1+t -021a 99 9 ' QT1+t -021a 99 9 ' QT1+t -05 66 6 ' QT1+t -03BsAJ1b 0J KK K ' QT1+t - Bq2#J1b 2a8, -- - ( QT1+t - Bq2#J1b 2a8, -- -qv,"f+Asm_ qT3 r!cT{Bq#J '( ((,Asm_ qT3 BtQKAs, -. ..,Asm_ qT3 BtQKAs, -. ..,Asm_ qT3 3r#qz2a:.Bq3$KSD!0MN OP PP,Asm_ qT3 3r3${Bq3$K0#baj"Q*2MN OP PP,Asm_ qT3 s2sdA;1sd ,2sdA;1c +2c1:r!Sz* ,, ,,#,r9c tgtdk(sJttdzdtzzdztdzdz z dk\ggtdttjt dtdd tjd t k(sJtdtzd z dtz ztdzd ztdz dzzz dkggtdttjd dtjddk(sJttdztd z z dkggtdtj d d k(sJttdzd tzzdztdz z dkDggtdttjdd tjdt k(sJttdzdz tdz dzz dkggtdttjddtjdd k(sJtdtzdztd zz dk\ggtdttjt dtj tddt k(sJttdz tz dtz kggtdttjt dtjdd k(sJttt ktdk\t tkggtdtdt k(sJy)NFr=rr>r4 r2) r%r-r"r!openrRopenrLopenr8r9r:1test_reduce_rational_inequalities_real_relationalr\s 'A .% 77 7 ' a4!A#:>AqD2I &! + ,-qU D hmmRC$hr2&6 a8LM NN N ( qD2IA !Q$(QUQJ!6 7! ; <=q  hmmB"HMM!Q$78 99 9 (1q51q5/Q*>)?(@! r1   (1a4!A#:>AE*BQ*F)G(H!  hmmB#X]]1b%9: ;; ; (1a4"9q1uqj*@1*D)E(F  hmmB"HMM!Q$78 99 9 (1Q37QU*;q*@)A(BA  hmmRC$hnnXa^R&HI JJ J (1q5!)q1u*<)=(>  hnnbS"%x~~a';< == = ( b&!q&2#' "#Q5 :=Ea_ MM Mr9c ttdz dk}ttdtttd}t ||k(sJt |t|k(sJt ttdz t tdk(sJt tdtzdzdk\t tttddttttttttddtt tk(sJt ttdz tdtzdz zdktttjtttdk(sJt ttdz tdttzdz zdkt ttdtktd kttjtktdkk(sJtd d ttfd t tdktgtt tktdkk(sJy)NrUrOr=rXirSrRr4nrF) extended_realc8ttdz dkS)NrUrO)r#abs)r_sr:z.test_reduce_abs_inequalities..s1#b1f+/Br9symbols)rbr-rr r#r rr rrrHalfrr/ TypeError)eansr_s @r:test_reduce_abs_inequalitiesrjs AE QA bAh1a !C q !S (( ( q! $ ++ + s1q5z *bAh 66 6  AaC!G   RA%:Bq"I!F Bq(3" #RQZ02 22 2 s1q5zC !a-   R]Bq!H5 66 6 s1q5zC#a&1 ,==A B 3quqy!b& !3qvvz1q5#9: ;; ; E *B 9BC q1uq"g 6#rcAgq1u:M MM Mr9c0tttdtzdt tddz tktt kk(sJttdzdkDt t jtktt kk(sJy)Nr=r2r)r#r rr-rrr NegativeOner8r9r: test_reduce_inequalities_generalrmsj r$q'!)Q/ 0CQ QB4O OO O q1uqy )S1BAF-K KK Kr9ctttdzddgttdk(sJtttdzddgdk(sJttdzdk\tjusJy)Nr=rTF)r#r r-rtruer8r9r: test_reduce_inequalities_booleanrpsu  AqD!d  "1a )) ) 1a4 U3 4 == = q!tqy )QVV 33 3r9c4tttdzdttdzdgt t t t tjttttt t tdtt tt t t tjttttt t tdtt tk(sJy)Nr=r2r4) r#r r-r.rrr rrKr rr8r9r:%test_reduce_inequalities_multivariaterrs 1a4 R1a[9 :c 3r!%%|R2Y 'R2YB3 )CD 3r!%%|R2Y 'R2YB3 )CD?F FF Fr9cHttdttdy)NcTtttttzdSNr2)r#r rr-r8r9r:rcz1test_reduce_inequalities_errors..s(;Bs1vz1.s(;Bq!tAvz1rRr2rOrdomainr4rUTclttdzdtztzz dztz dktS)Nr=rOrisolver-rr8r9r:rcz2test_solve_univariate_inequality..+s,1qs1u q(8!';a'? Cr9r^ncHtttktdS)NFr>)rrr-rsr:rcz2test_solve_univariate_inequality..:ss1v{A%(Pr9c1positivec(tz dkSNr)r)rrsr:rcz2test_solve_univariate_inequality..<sqtax(<r9)negativec8ttdzktSNr=)rr-zerosr:rcz2test_solve_univariate_inequality..Csq!td{A(>r9cFttdztzktSrrrsr:rcz2test_solve_univariate_inequality..Ds 1tAv q)r9cDtdttz z dktS)Nr2r=rr-r.r8r9r:rcz2test_solve_univariate_inequality..Fq!a%y1}a(@r9cDtdttz z dktS)Nr2rrr8r9r:rcz2test_solve_univariate_inequality..Grr9c>tttz dktSrrr8r9r:rcz2test_solve_univariate_inequality..HsfQUQY2r9c|ttttdzt tdzzdtSrw)rr rr-rr8r9r:rcz2test_solve_univariate_inequality..Os, 3q619s1vqy !$a))r9)rr-r"r!rrrr r r r rrrfrr/ ValueErrorr)expandrrrxrrrgr7r6)denrrrs @@@r: test_solve_univariate_inequalityrs !Q$!)Q5 1U8RC;LB6   !Q$!)Q 2c"Q(Bq"I&>Bq"I B3 A$   1q51q5/1q5)Q.e D hq!nhq"o. // / 1q51q5/1q5)Q. 2 3r!QxAq "C1a"Q)$<= >> > 1q51q5/1q5)A-q9Q? K 2a8R1X   !Q$1*q.1$aE : hrDG8A:.d;qvvQ )2tT: < << < !Q$A+/A%)1 ?B   1q51qs7#a' +r!Qx 77 7 AEAE?Q&!a%!a%1Q3)>?!CQ G2bQRTUhXZ[\^_X`Ka aa a QUQUOa'1q51q5/AaC*?@1q5IAMq QUWXY[\U] ]] ] JCD !Q$(Q,"A & F1a4!8a< #a 'R0 11 1 !QU)a- #s1Q4!8QV'< << < EAE? " " $C 1q5#+"A & bSQUbAh& '' ' c A  PQ td #B  <= cD!A !B$)R aRTBY // / !B$(B 4 '' ' !B$(B 5 (( ( q619s1vqy 1 $D  >? !  @A  @A 923 a4!8aQi D $(A% 0AJJ >> > $!)Q5 1QWW << < !)*r9c Fttttjktdt t dtdz ddt jttddzdtzk(sJttttjkDtdt tdz ttddzddk(sJttttjktdt tdz ttddzddk(sJttttjk\tdt t dtdz t jttddzdtzk(sJttttjktdt t jdtd z t jtdz tk(sJttttjktdt ttjt jtdtzk(sJttttjktdtj k(sJttttd ktdtj"k(sJttttj$k\tdtj k(sJttttjkDtdtj"k(sJy) NFr>rTrUr=rOrSrR)rrr-rrfr"r!rrYrrrrZrrKr r6r7rlr8r9r:test_trig_inequalitiesrSs #a&166/1 7 hq"Q$t,hmmBx1~0A1R4!HI JJ J #a&155.! 6 hnnQ1%x}}RT2'>? @@ @ #a&AFF"A% 8 iAbD!9: ;; ; #a&AEE/1 7177 BB B #a&1R5.! 6!** DD D #a&AMM)1 ?177 JJ J #a&155.! 6!** DD Dr9cttdzdk\tdtjk(sJttdzdk\tdtjj tk(sJttdzdktdtj k(sJttdzdktdtj j tk(sJy)Nr=rFr>T)rr-rr6 as_relationalr7r8r9r:test_issue_9954rjs !Q$!)Q5 1QWW << < !Q$!)Q4 0AGG4I4I!4L LL L !Q$(A% 0AJJ >> > !Q$(A$ /1::3K3KA3N NN Nr9c 4ttdztdzz dzd}tttdt tdz zdkDt t dtkt|dzkt |dztkttkk(sJy)NrUr=r2rrOr)r)r-r*rrrrr)rs r:test_slow_general_univariaterqs}q!tad{Q"A a1T!QZ<'!+ , 3q1ua!Q$h QTAXq2v!67 88 8r9c$dtz tdtz z }ttdtttt}t |dt|k(sJdtz t dtz dzz }t|dk|k(sJy)Nr2.s53B3 Ad1gI <:5Q r9)r#rbr-rrrrr r'rrrrr/rr8r9r:test_issue_10198rs!  Qs1Q37|^a !%&"WQqT!V$rT)rrrr-rrr7r!rs r:test_isolve_SetsrsU c A #a&A+qU 31::q1u%!Q'>? @@ @r9c vtdd}tdd}t|dz |dz z|dz zdk|| t|dk(sJtd}t|dzdk|tj |d k|t kDztt|ddzk(sJtd|zdzdkD|tj |d k\|t kztt|ddzk(sJt|dzd|zzdz dk|tj |d k\|dkztt|ddzk(sJt|dzd|zzdz dkD|tj |dk\|t kztt|ddz|d k|t kDztt|ddzzk(sJy) NrrOr-Frr2r=rSrrWr4rQ)r rrr rIntegersrr,)domr-s r:%test_integer_domain_relational_isolvers Aq/CsA 1q51q5/1q5)A-q =Aq II Is A !a%!)Qqzz 2 GRC 2c!Qi#3 3 44 4 !a%!)a-1:: 6 GB 2c!Qi#3 3 44 4 16AE>A%*Aajj A GQ 2c!Qi#3 3 44 4 16AE>A%*Aajj A !VB 2c!Qi#3 3RAG$3q!9a(88 : :: :r9ctttttdtt dtk(sJtdd}tdt z jt dkt ||k(sJttt dz t z dkt tjtjddk(sJy)Nrr2rTrr^) r+rr.r!rr r-diffrrr6r[)is r:test_issue_10671_12466rs CFAx2 /9Q3C CC CBA QqSJJqMA%q! , 11 1 SQZ\a'AGG 4q!  r9c tttttt fD]l}t |tdtjtk(sJt |tjttjtk(rlJt t dtzdz ttt tdk(sJt tjt}t |t|k(sJtdzttttttztdtzzfD]:}dD]3}d|z|z dkD}t |td||tdz kDk(r3J<t dtdzzdtzzdz dktdttdzztjkk(sJt t ttzdtt ttzdk(sJt!dd}t t t|zdtt td|z k(sJt t|zdktt|zdkk(sJt!d d }t |tz dkDttj"tkt|kzk(sJt |tz dkDtddtz d|z kDk(sJt dtz tdtz dz z}t |tt tdk(sJt ttdtz dz zktttjkt tdzk(sJy) Nr2r=)rr2rT)linearnz)nonzeroar)r r r r r rr(r-lhsrrKr.rrrrfrr)opiefxcrhrrs r:test__solve_inequalityrs2r2r2&; Aq1-11Q666 AEE1q155:::; R!a^Q /2a8 ;; ; AEE1B R #r )) )!tSVSVc!f_aQi8 A"q1 A$Q$7QqtV    Qq!tVac\A-11T B 1q5 AFF   R!QZ +r!A#qz 99 9 d #B R"a[! ,1ad ;; ; QrTAXq )adQh 77 7sT"A QqS1Wa (QVVaZAE,B BB B QqS1Wa 5!A#!) DD D 1q5!QqS1W+A Q "bAh .. . QAaC!G_a 0QZ2a84K KK Kr9cddlmt tdk(sJtjtddk(sJtjtttjcxk(rdk(sJJtjt t tjcxk(rtj k(sJJtj tttj cxk(rtddk(sJJtj t t tj cxk(rdk(sJJttttcxk(r tdzk(sJJtt t tcxk(r tdz k(sJJttfdy) Nr_ptrOr=r4rRr2cHtddtjS)NrT)infinite)rrrKrsr:rcztest__pt..ss5t#SQUU^ 0q 00 00 0 quurc?c2#quuo 7 77 77 7 q}}b !SQ]]%; NxA NN NN N q}}rc "c2#q}}&= C CC CC C q":R ,q1u ,, ,, , q2#;#rc1+ .Q .. .. . :DEr9ctttddkttdktjtkzk(sJy)NrOr=r)r(rr-rrr8r9r:test_issue_25697rs2 SAY!^Q /AFqvvz3J JJ Jr9ctdttkttttkj tdk(sJy)NrO)r#rbr-rsubsr8r9r:test_issue_25738rs@ q3q6z c!f - 2 22q 9 :: :r9cttttz dkttkttkzt tktt kzzk(sJyru)r#rrr-rr8r9r:test_issue_25983rsI r#a&yA~ .B!GB3GbSSTWYZ_a^aYaLb2c cd cr9N)g__doc__sympy.concrete.summationsrsympy.core.functionrsympy.core.numbersrrrrsympy.core.relationalr r r r r rsympy.core.singletonrsympy.core.symbolrr$sympy.functions.elementary.complexesr&sympy.functions.elementary.exponentialrr(sympy.functions.elementary.miscellaneousrr$sympy.functions.elementary.piecewiser(sympy.functions.elementary.trigonometricrrrsympy.integrals.integralsrsympy.logic.boolalgrrsympy.polys.polytoolsrrsympy.sets.setsr r!r"rr#r$r5r%r&rr'r(sympy.polys.rootoftoolsr)sympy.solvers.solversr*sympy.solvers.solvesetr+sympy.core.modr, sympy.abcr-r.sympy.testing.pytestr/r0rErFr;rIrMr\rjrmrprrryr{rrrrrrrrrrrrrrrrrrrrr8r9r:rs:L)(2288"-4;?:BB.'066;; +'+.bhhjN HIV%,P!MHN&L 4F P FT B&,;*|E.O88 .5 !;B@@ :$L8 FK: er9