o
    jg!R  ă                   @   sp  d Z ddlmZ ddlmZ ddlmZmZmZm	Z	 ddl
mZmZmZmZmZmZ ddlmZ ddlmZmZ ddlmZ dd	lmZmZ dd
lmZmZ ddlmZ ddl m!Z!m"Z"m#Z# ddl$m%Z% ddl&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z3m4Z4m5Z6m7Z7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZBmCZC ddlDmEZEmFZF e GĄ ZHdd ZIdd ZJdd ZKdd ZLd d! ZMd"d# ZNd$d% ZOd&d' ZPd(d) ZQd*d+ ZRd,d- ZSd.d/ ZTd0d1 ZUd2d3 ZVd4d5 ZWd6d7 ZXeFd8d9 ZYd:d; ZZd<d= Z[d>d? Z\d@dA Z]dBdC Z^eFdDdE Z_dFdG Z`dHdI ZadJdK ZbdLdM ZcdNdO ZddPdQ ZedRdS ZfdTS )UzFTests for tools for solving inequalities and systems of inequalities. é    )ÚSum)ÚFunction)ÚIÚRationalÚooÚpi)ÚEqÚGeÚGtÚLeÚLtÚNe)ÚS)ÚDummyÚSymbol)ÚAbs)ÚexpÚlog)ÚrootÚsqrt)Ú	Piecewise)ÚcosÚsinÚtan)ÚIntegral)ÚAndÚOr)ÚPolyÚPurePoly)Ú	FiniteSetÚIntervalÚUnion)Úreduce_inequalitiesÚsolve_poly_inequalityÚreduce_rational_inequalitiesÚsolve_univariate_inequalityÚreduce_abs_inequalityÚ_solve_inequality)Úrootof)Úsolve)Úsolveset)ÚMod)ÚxÚy)ÚraisesÚXFAILc                   C   sd   t tdtdtjgksJ t tdtdtjgksJ t ttd tdtdtddgks0J d S )Nr   z==é   ú>é˙˙˙˙TF)	Úpsolver   r,   r   ÚRealsÚEmptySetr   r    r   Š r6   r6   ú]/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/solvers/tests/test_inequalities.pyÚtest_solve_poly_inequality$   s   ,r8   c               	   C   sÔ  t ttd dggtddtdksJ t ttd dggtddtdks(J t ttd dggtddtjks;J tjrQt t	td dggtddtj
ksYJ tt tsYJ t ttd dggtddtd tj
ĄksqJ t ttd dggtddtd tj
ĄksJ t ttd dggtddtddksJ t ttd dggtddtddksłJ t ttd dggtddtddddksĘJ t t	td dggtddttt dtdtksćJ t ttd dggtddtdd tj
Ąks˙J t ttd dggtddtdd tj
ĄksJ t ttd dggtddtd	d Ą ks1J t ttd dggtddtd	dksGJ t ttd dggtddtd	dddks_J t t	td dggtddttt d	tdtks|J t ttd dggtddttt d	dd
tdtddksJ t ttd dggtddtd	d tj
ĄksˇJ td} t ttd d dttd d dggtddtjksŮJ t ttd d dt	td d dggtddtddksůJ t ttd d dt	td d dggtddtt|  dddtd| ddks$J t ttd d dttd d dggtddtt|  dddtd| ddksOJ t ttd d dt	td d dggtddtt|  dddtd| ddkszJ t ttd d dttd d dggtddtt|  dddtd| ddksĽJ t ttd d dttd d dggtddtt|  dddtddddtd| ddksÖJ t ttd d	ggttju sčJ d S )Né   r   FŠÚ
relationalr0   r2   Tç      đ?g      đż)Ú
right_open)Ú	left_open)r$   r   r,   r   r   r   r   r5   Úis_realr	   r4   r    r   r
   Ú
complementr   r!   ÚevalfÚinfr   Úfalse)Úsr6   r6   r7   Ú+test_reduce_poly_inequalities_real_interval*   s$  ˙˙˙˙˙˙ţ˙ţ
ţ˙ţ˙ţ˙˙˙˙˙˙˙ţ˙ţ˙
ţ˙˙
˙˙
˙˙˙
˙˙
ţ˙˙
ţ˙˙
ţ˙˙˙
˙˙˙
˙(˙
ţ(˙
ţ(˙
ţ(˙
ţ(˙˙
ţ(rE   c               
   C   s  t ttd dggtddttdksJ t ttd dggtddttdks*J t ttd dggtdddks<J t ttd dggtddttt ttttksXJ t ttd dggtddtttt tttt	tdksxJ t t	td dggtddtttt tttt	tdksJ t
jt
dfD ]ë} | t }t ttd | ggtddttt|  tt| ksÁJ t ttd | ggtddttt|  ttt| ksßJ t ttd | ggtddttt|  ttt| ksýJ t ttd | ggtddtttt| ttt|ttt|  t| tks)J t ttd | ggtddtttt| ttt|  tt| ttt|ksUJ t t	td | ggtddttt| ttt|  tt|  ttt| tt| ttt|ksJ qd S )Nr9   r   Tr:   Fr<   )r$   r   r,   r   r   r	   r   r   r
   r   r   ÚOner   )ÚonerB   r6   r6   r7   Ú0test_reduce_poly_inequalities_complex_relationalu   s   ˙˙˙˙˙˙˙˙˙ţ˙ţ˙ţ˙ţ˙ţ˙4
ţ˙4
ţ˙ţţďrH   c                   C   sV  t g tdks	J t td dt  d td d  dkggtddtt t dĄtdd	t d
tĄks6J t dt d dt  td d td d   dk ggtddtt ddĄt ddĄksdJ t td td  dkggtddt d	dĄks}J t td d
t  d td  dkggtddtt dd	Ąt dtĄksŁJ t td d td d  dk ggtddtt ddĄt dd
ĄksÇJ t dt d td
  dkggtddtt t dĄt tddtĄksíJ t td t dt kggtddtt t dĄt dd
ĄksJ t ttk tdkt tk ggtddtdtks)J d S )NFr9   é   é   r   r:   éü˙˙˙éţ˙˙˙r2   é   é
   é   éű˙˙˙r0   éý˙˙˙é   )	r$   r,   r!   r    Úopenr   ÚRopenr   ÚLopenr6   r6   r6   r7   Ú1test_reduce_rational_inequalities_real_relational   sT   *˙"ţ4ţý˙
ţ&˙ţ"˙ţ˙ ţ˙
ţ˙˙rV   c               	      s¤  t td dk } ttdtttd}t| |ksJ t| t|ks$J tt td ttdks3J tt dt d dkttttddtttt	ttttddtt	 tks_J tt td t dt d  dk ttt
jtttdksJ tt td t dt t d  dk ttt
dtk td	k tt
jtk tdk ksŤJ td
dd tt fdd ttdk t gdtt	 tk tdk ksĐJ d S )NrO   rI   r9   rR   iő˙˙˙rM   é   rL   r2   ÚnrF)Úextended_realc                      s   t t d dk S )NrO   rI   )r"   Úabsr6   ŠrX   r6   r7   Ú<lambda>Đ   ó    z.test_reduce_abs_inequalities.<locals>.<lambda>ŠÚsymbols)rZ   r,   r   r   r"   r   r   r   r   r   r   ÚHalfr   r.   Ú	TypeError)ÚeÚansr6   r[   r7   Útest_reduce_abs_inequalitiesÁ   s2   ˙˙˙
˙˙˙&*˙0rd   c                   C   s`   t ttdt dttdd tkttk ksJ t td dkttjtk ttk ks.J d S )Nr9   r0   r   )r"   r	   r   r,   r   r   r   ÚNegativeOner6   r6   r6   r7   Ú test_reduce_inequalities_generalÔ   s   4,rf   c                   C   s`   t ttd ddgttdksJ t ttd ddgdks!J t td dktju s.J d S )Nr9   r   TF)r"   r   r,   r   Útruer6   r6   r6   r7   Ú test_reduce_inequalities_booleanŮ   s   ˙˙rh   c                
   C   s   t ttd dttd dgtttttjtt	tt
tttdt	t
 tttttjtt	tt
tttdt	t
 tksEJ d S )Nr9   r0   r2   )r"   r	   r,   r-   r   r   r   r   rF   r   r   r6   r6   r6   r7   Ú%test_reduce_inequalities_multivariateŕ   s    00ţri   c                   C   s    t tdd  t tdd  d S )Nc                   S   s   t tttt dS ŠNr0   )r"   r	   r   r,   r6   r6   r6   r7   r\   ç   ó    z1test_reduce_inequalities_errors.<locals>.<lambda>c                   S   s   t ttd t t dS ŠNr9   r0   )r"   r	   r,   r-   r6   r6   r6   r7   r\   č   s    )r.   ÚNotImplementedErrorr6   r6   r6   r7   Útest_reduce_inequalities_errorsć   s   rn   c                   C   sŚ   t tt dk tgdtdt k ksJ t tt dktgdttk tt d k@ ks+J t tdtt tgdtttks>J t tdtt tgdtttksQJ d S )Nr0   r^   r   )r"   r,   r-   r   r   r   r6   r6   r6   r7   Útest__solve_inequalitiesë   s   &0&*ro   c                  C   st   dt d  d t tdd  tdd dk} t| tt tddtdd  k td d td	d t k ks8J d S )
NrQ   r9   é-   rM   é!   r   iń˙˙˙i  é   )r,   r   r"   r   r   )Úeqr6   r6   r7   Útest_issue_6343ň   s   ,6˙rt   c                  C   sn  t td d dk ttjtk tdk ksJ t td d dkttjtktdkks,J t td d dkttt tk tdk tttk tjtk ksMJ t td d dkttt tk tdkttjtkttk ksnJ td t d } t| dk}ttt	| dtkttk tt tk tt	| dk}||ksJ tt
t d d dk ttjtk tdk ksľJ d S )Nr9   r0   r   r2   rR   é	   )r"   r,   r   r   re   r   r   rF   r)   r(   r   ÚZero)rs   ÚsolÚtrur6   r6   r7   Útest_issue_8235ř   s"   ˙˙(˙(˙46ry   c                  C   sŹ   t dtttd tddf d ktgtttd tddf d kks%J td} t| ttddf}t dt| td  ktgttd  t| ttddf kksTJ d S )Nr   r9   r0   rI   Úf)r"   r,   r   r-   r   r   )rz   rb   r6   r6   r7   Útest_issue_5526  s   ˙˙ţ ˙r{   c                     sü  t td dktddttt dtdtksJ t td dkttttdtttttttdtt tks<J t td td  td  dktddttddtdtks\J t td td  td  dkttttdtttdttdttttksJ t td td  td  dk tt	ddd	tt
tdt
tdksŠJ t td dt  d dktddttd
td d tj ddttjtdd  tddksÚJ t td td  t d dktddtdtdksőJ t tt tdt   dk tt
tdksJ t td td  t td td  dt   dk ttt
tdt
tdks5J t td td  t td td  dt   td  dktt
tdks\J ttdd  t td t d dkttttd t d dtk ttk ksJ t dtd  dktttdtk ttk ksJ td td   Ą } t td |  dkttt ktdk @ ttd@ ksÄJ tdttfdd tddd tt fdd tdddt   dk  d  k ksúJ t   dk  dksJ t   dk dksJ tdd tdd  d ttfdd ttfdd ttdd  ttdd  ttdd  td t ttd   t dk tddtju sfJ t dktddtju suJ ttdd  d S )Nr9   rM   Fr:   rL   r0   rI   r   ŠÚdomainr2   rO   Tc                   S   s&   t td dt t  d t dk tS )Nr9   rI   r   ŠÚisolver,   r   r6   r6   r6   r7   r\   +  s   & z2test_solve_univariate_inequality.<locals>.<lambda>rW   Únc                      s   t tt ktddS )NFr:   )r   r   r,   r6   Šr   r6   r7   r\   :  rk   Úc1ŠÚpositivec                      s   t   dk  S ŠNr   )r   r6   )r   r   r6   r7   r\   <  ó    )Únegativec                      s   t td  k tS ŠNr9   )r   r,   r6   ŠÚzeror6   r7   r\   C  r   c                      s   t td  t k tS r   r~   r6   r   r6   r7   r\   D  s    ˙c                   S   ó   t dtt  dk tS )Nr0   r9   Šr   r,   r-   r6   r6   r6   r7   r\   F  rk   c                   S   r   )Nr0   r   r   r6   r6   r6   r7   r\   G  rk   c                   S   s   t tt dk tS r   r~   r6   r6   r6   r7   r\   H  r   c                   S   s$   t tttd ttd  dtS rl   )r   r   r   r,   r   r6   r6   r6   r7   r\   O  s    ˙)r   r,   r!   r    r   r   r   r   r   r   r   r   r   r`   r   r.   Ú
ValueErrorr(   Úexpandr   r   rm   r   r   ra   r5   r4   )Údenr6   )r   r   r   r7   Ú test_solve_univariate_inequality  sj    
˙0
˙$˙ ,˙*˙ ˙˙$
˙.RN"
˙2
˙&r   c                	   C   s  t tttjk tddttdtd ddt tt	dd dt Ąks%J t tttjktddttd tt	dd ddksAJ t t
ttjk tddttd tt	dd ddks]J t t
ttjktddttdtd t tt	dd dt ĄksJ t tttjk tddtt dtd	 Ąt td tĄksJ t tttjktddtttjt tdt ĄksťJ t tttjktddtjksĚJ t t
ttd
k tddtjksŢJ t tttjktddtjksďJ t t
ttjktddtjksJ d S )NFr:   r   é   TrO   r9   rI   rM   rL   )r   r   r,   r   r`   r!   r    r   rS   r   r   rv   rT   r   rF   r   r4   r5   re   r6   r6   r6   r7   Útest_trig_inequalitiesS  s,   ,˙˙˙(˙ ˙˙"$"(r   c                   C   s   t td dktddtjksJ t td dktddtj tĄks#J t td dk tddtjks3J t td dk tddtj tĄksFJ d S )Nr9   r   Fr:   T)r   r,   r   r4   Úas_relationalr5   r6   r6   r6   r7   Útest_issue_9954j  s    & *r   c                  C   sn   t td td  d d} tttdttd  dkttdtk t| d k t| d tk ttk ks5J d S )NrO   r9   r0   r   rI   r   )r(   r,   r)   r   r   r   r   r   )Úrr6   r6   r7   Útest_slow_general_univariateq  s   ,˙r   c                  C   sn   dt  tdt   } ttdt tt t}t| dt |ksJ dt  tdt  d  } t| dk |ks5J d S )Nr0   ú<r9   r   )r,   rZ   r   r   r   r&   r   r"   )rs   rc   r6   r6   r7   Útest_issue_8545x  s
   r   c                   C   sR   t t tk ttt tk ttk ksJ t ttkttt tk ttk ks'J d S )N)r   r   r,   r   r6   r6   r6   r7   Útest_issue_8974  s   (*r   c                	   C   sě   t ddtdt d   dk tt kttdd k @ ttd@ ks$J t tdtt d tttdks8J tddtddt    dtt	t
t tk tdk t
tjtk ttddk t
tddtk ttk ksmJ ttd	d
  d S )Nr2   r0   r   r9   rQ   r   rI   rM   c                   S   s$   t ddtddtt    dtS )NrQ   r0   r   )r&   rZ   r   r,   r6   r6   r6   r7   r\     s
    ˙˙z"test_issue_10198.<locals>.<lambda>)r"   rZ   r,   r   r   r   r   r   r&   r   r   rv   r   r.   r   r6   r6   r6   r7   Útest_issue_10198  s   ˙"˙(.˙˙r   c                   C   s<   t ttdk dksJ tttdk tjdtjksJ d S )Nr9   Tr|   )r)   r   r,   r*   r   r4   r6   r6   r6   r7   Útest_issue_10047  s   $r   c                   C   s0   t ttdk ttjtk ttdk ksJ d S )Nič  )r)   r   r,   r   r   rv   r   r6   r6   r6   r7   Útest_issue_10268  s   0r   c                  C   sF   t d} ttt| ktddttj| dk ft|  | dfks!J d S )Nr   Fr:   r   T)r   r   r   r,   r   r   r5   r    r   r6   r6   r7   Útest_isolve_Sets   s   ˙r   c                  C   s  t dd} tddd}t|d |d  |d  dk || d	t|dks%J td}t|d dk |tjd	|d
k|t k@ tt|dd@ ksHJ td| d dk|tjd	|dk|tk @ tt|dd@ kshJ t|d d|  d dk |tjd	|d
k|dk@ tt|dd@ ksJ t|d d|  d dk|tjd	|dk|tk @ tt|dd@ |dk|t k@ tt|dd@ B ksÁJ d S )Nr   rI   r,   Fr   r0   r9   rM   r|   rQ   r2   rK   )r   r   r   r   r   ÚIntegersr   r+   )Údomr,   r6   r6   r7   Ú%test_integer_domain_relational_isolve§  s$   
4 ˙˙"˙" ˙˙r    c                  C   s   t ttttdttdtksJ tdd} t dt  tĄdk t| | ks(J t ttd t dktt	j
t ddĄks?J d S )Nr   r0   rN   r   rW   )r*   r   r-   r    r   r   r,   Údiffr   r   r4   rU   )Úir6   r6   r7   Útest_issue_10671_12466š  s   $
"
˙rŁ   c                  C   s|  t tttttfD ]} t| tdtjtksJ t| t	j
ttjtks%J qttdt d ttttdks9J tt	j
t}t|t|ksHJ td tttttt tdt  fD ] }dD ]}d| | dk}t|tdd||t	d kks{J q`q\tdtd  dt  d dk tddttd  t	jk ksJ tttt dtttt dksŽJ tddd}ttt| dtttd| ksÇJ tt| dk tt| dk ksŘJ td	dd
}t|t dktt	jtk t|k @ ksňJ t|t dktdddt d| kksJ tdt tdt d  }t|tttdks"J tttdt d  k ttt	jk ttd@ ks<J d S )Nr0   r9   )r   r0   r   T)ÚlinearÚnz)ÚnonzeroÚar   )r
   r   r   r	   r   r   r'   r,   Úlhsr   rF   r-   r   r   r   r`   r   rv   )ÚopÚieÚfxÚcrb   rĽ   r§   r6   r6   r7   Útest__solve_inequalityÁ  s4   &,
˙ţ$˙&&"(,8r­   c                      sj  ddl m   t tdksJ  tjtddksJ  tjt ttj  kr/dks2J  J  tjt  t tj  krHtjksKJ  J  tjt ttj  kratddksdJ  J  tjt  t tj  krydks|J  J  tt tt  krtd ksJ  J  tt  t t  kr§td ksŞJ  J t	t
 fdd	 d S )
Nr   ŠÚ_ptrI   r9   r2   rL   r0   c                      s    t dddtjS )Nr˘   T)Úinfinite)r   r   rF   r6   rŽ   r6   r7   r\   ç  r]   ztest__pt.<locals>.<lambda>)Úsympy.solvers.inequalitiesrŻ   r   r   rF   r`   re   r   r,   r.   r   r6   r6   rŽ   r7   Útest__ptÝ  s   ,220,0r˛   c                   C   s.   t ttddkttdktjtk @ ksJ d S )NrI   r9   ru   )r'   r   r,   r   rv   r6   r6   r6   r7   Útest_issue_25697ę  s   .rł   c                   C   s0   t dttk t tttk  tdĄksJ d S )NrI   )r"   rZ   r,   r   Úsubsr6   r6   r6   r7   Útest_issue_25738î  s   ˙rľ   c                   C   s@   t ttt dkttkttk @ t tk tt k@ B ksJ d S rj   )r"   r   r   r,   r   r6   r6   r6   r7   Útest_issue_25983ó  s   @rś   N)gÚ__doc__Úsympy.concrete.summationsr   Úsympy.core.functionr   Úsympy.core.numbersr   r   r   r   Úsympy.core.relationalr   r	   r
   r   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú$sympy.functions.elementary.complexesr   Ú&sympy.functions.elementary.exponentialr   r   Ú(sympy.functions.elementary.miscellaneousr   r   Ú$sympy.functions.elementary.piecewiser   Ú(sympy.functions.elementary.trigonometricr   r   r   Úsympy.integrals.integralsr   Úsympy.logic.boolalgr   r   Úsympy.polys.polytoolsr   r   Úsympy.sets.setsr   r    r!   rą   r"   r#   r3   r$   r%   r   r&   r'   Úsympy.polys.rootoftoolsr(   Úsympy.solvers.solversr)   Úsympy.solvers.solvesetr*   Úsympy.core.modr+   Ú	sympy.abcr,   r-   Úsympy.testing.pytestr.   r/   rA   rB   r8   rE   rH   rV   rd   rf   rh   ri   rn   ro   rt   ry   r{   r   r   r   r   r   r   r   r   r   r   r    rŁ   r­   r˛   rł   rľ   rś   r6   r6   r6   r7   Ú<module>   sp      K($
>

