a
    {þdº:  ã                   @   s”  d dl 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mZ d dlmZmZ d dlmZ d dl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 d dl m!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5 e	dddZ6dd„ Z7dd„ Z8dd„ Z9e3dd„ ƒZ:dd„ Z;dd„ Z<dd „ Z=d!d"„ Z>d#d$„ Z?d%d&„ Z@d'd(„ ZAd)d*„ ZBe3d+d,„ ƒZCd-S ).é    )ÚEÚIÚRationalÚooÚpi)ÚS)ÚSymbolÚsymbols)ÚAbsÚre)ÚexpÚlog)Úsqrt)Ú	Piecewise)ÚcosÚcotÚcscÚsecÚsinÚtan)Úexpint)ÚMatrixSymbol)Úsimplify)	Úfunction_rangeÚcontinuous_domainÚnot_empty_inÚperiodicityÚlcimÚ	is_convexÚstationary_pointsÚminimumÚmaximum)ÚIntervalÚ	FiniteSetÚ
ComplementÚUnion)ÚraisesÚ_both_exp_pow©ÚxÚaT©Úrealc                     s  t dƒ\‰ } }}ttˆ ƒˆ tt d td ƒƒtddƒks>J ‚ttˆ ƒˆ tdtƒƒtddƒksbJ ‚ttˆ ƒˆ tdtƒƒtt tƒksˆJ ‚ttˆ ƒˆ ttd tƒƒtt dƒks²J ‚tˆ d ˆ d  ˆ tddƒƒttt tdd	ƒƒttd
dƒtƒƒksøJ ‚tdˆ d  ˆ tddƒƒtdtƒks"J ‚tt	ˆ ƒˆ tddƒƒtt	dƒt	dƒƒksPJ ‚tt
ˆ ƒˆ  ˆ tjƒtt dƒksxJ ‚ttdˆ  d ƒˆ tddƒƒtdtdƒƒksªJ ‚tˆ ˆ d  ˆ d ˆ   ˆ tjƒtdƒksÚJ ‚tˆ ˆ d  ˆ d ˆ   |  ˆ tjƒt| ƒksJ ‚ttˆ ƒˆ ttddƒtdƒƒƒtttdƒ dƒttdƒƒƒksRJ ‚ttˆ ƒˆ tt dƒƒtddƒkszJ ‚ttˆ ƒˆ tjƒtjks˜J ‚tˆ tˆ d d ƒ ˆ tjƒt dd¡ksÈJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nzx y a bé   éÿÿÿÿé   r   é   éûÿÿÿé   é   é   éýÿÿÿé   éüÿÿÿc                      s*   t tˆ ƒtˆ ƒtˆ ƒ  d ˆ  ˆ tjƒS ©Nr-   )r   r   r   r   r   ÚReals© r(   r:   úg/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/calculus/tests/test_util.pyÚ<lambda>3   s   $ÿz%test_function_range.<locals>.<lambda>c                      s   t tˆ ƒˆ  ˆ tjƒS ©N)r   r   r   r9   r:   r(   r:   r;   r<   5   s   ÿc                      s   t tˆ ƒˆ tjƒS r=   )r   r   r   ZIntegersr:   r(   r:   r;   r<   7   s   ÿc                      s   t tˆ ƒd ˆ tjƒS r8   )r   r   r   ZNaturalsr:   r(   r:   r;   r<   9   s   ÿ)r	   r   r   r"   r   r   r   r%   r   r   r   r   r9   r   r#   r   ÚEmptySetÚopenr&   ÚNotImplementedError)Úyr*   Úbr:   r(   r;   Útest_function_range   s\    ÿÿ
ÿ
ÿ"ÿÿ
ÿ

ÿ
ÿ
 ÿ
$ÿ
ÿ
ÿ
0rC   c               	   C   sH  t dƒ} tt| ƒ| tddt ƒƒtddt ƒks4J ‚tt| ƒ| tddt ƒƒttdtd ddƒttd ttddƒ ddƒtttddƒ dt ddƒƒksœJ ‚t| d | d d  | tj	ƒttt
 dddƒtdt
ddƒƒksÞJ ‚tt| ƒtd|  d ƒ | tj	ƒttddƒt
ddƒksJ ‚tdt| d ƒ | tj	ƒtdt
ddƒksHJ ‚td|  d | tj	ƒtt t
 d¡t dt
¡ƒks€J ‚td| d d  d | tj	ƒtt t
 d	¡t d	d¡t dt
¡ƒksÊJ ‚ttt| ƒd d ƒ| tj	ƒ}| dt d ¡r J ‚| d
¡sJ ‚t dddd}t| d|  | tj	ƒtdt
ƒksDJ ‚d S )Nr)   r   r-   FTr0   r/   r6   éþÿÿÿr2   Úd)ZevenZzero)r   r   r   r"   r   r   r%   r   r   r9   r   r   r   r?   Úcontains)r)   ÚdomainrE   r:   r:   r;   Útest_continuous_domain=   s2    ,,ÿÿÿ ÿ
.ÿ
$ÿ
rH   c                	   C   sD  t ttdt ƒ tddddƒ¡tƒttjdddƒks8J ‚t tttd ƒ tddƒ¡tƒtttdƒ dƒtddƒƒksxJ ‚t ttd t tƒ tddƒ¡tƒtttdƒ d tj dƒtdt	ddƒtdƒd  ƒtddƒƒksàJ ‚t tttd  ƒ tj
¡tƒttj
tdƒƒksJ ‚t tttd  ƒ tj
¡tƒttj
tdƒƒksHJ ‚t ttd d	t  d td  ƒ tj
¡tƒttj
tdƒƒksŒJ ‚t td	dttd  ƒ tdd	ƒ¡tƒtt tƒksÄJ ‚t tdttd  ƒ tdd	ƒ¡tƒttd	ƒd dƒks J ‚t tttd d  ƒ tj
¡tƒttj
tddƒƒks:J ‚t tttd ƒ ttdd	ddƒtdd
ƒƒ¡tƒtttd
ƒ dƒttd	ƒ dddƒtdd	ddƒtdd
ƒƒksªJ ‚t tdƒ td	dƒ¡tƒtjksÐJ ‚t ttd td  ƒ tdtƒ¡tƒttddddƒtdtƒƒksJ ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ d S )Nr-   r/   TFr.   r6   é   rD   r0   r2   c                   S   s   t tƒS r=   )r   r)   r:   r:   r:   r;   r<   n   ó    z#test_not_empty_in.<locals>.<lambda>c                   S   s   t tddƒtƒS )Nr   r/   )r   r"   r)   r:   r:   r:   r;   r<   o   rJ   c                   S   s   t ttƒ tj¡ttƒS r=   )r   r#   r)   Ú	intersectr   r9   r*   r:   r:   r:   r;   r<   q   rJ   )r   r#   r)   rK   r"   r   ÚHalfr%   r   r   r9   r$   r*   r   r>   r&   Ú
ValueErrorr@   r:   r:   r:   r;   Útest_not_empty_inS   s^    "ÿÿ""ÿÿÿ
ÿ
,ÿ
$
ÿ
"ÿ
 ÿ
ÿÿ"ÿþ
&$ÿ
ÿrN   c                     s  t dƒ‰t dƒ} t ddd}ttdˆ ƒˆƒtks6J ‚tdtdˆ ƒ ˆƒtd ksXJ ‚ttˆƒd ˆƒdt ksvJ ‚td	td	ˆ ƒ ˆƒtd	 ks˜J ‚ttˆƒtˆƒ ˆƒdt ksºJ ‚ttˆƒtˆƒ ˆƒdt ksÜJ ‚ttˆƒtˆƒ ˆƒdt ksþJ ‚ttdˆ ƒtdˆ ƒ |  ˆƒtd ks.J ‚ttˆƒtˆƒ ˆƒtksNJ ‚ttˆƒtdˆ ƒ ˆƒdt ksvJ ‚ttˆƒd
 ˆƒdt ks–J ‚ttdˆ ƒtˆƒtˆƒ  ˆƒtksÂJ ‚tttˆƒƒˆƒdt ksâJ ‚tt	tdˆ ƒƒttdˆ ƒƒ ˆƒtksJ ‚ttdˆ ƒttˆƒt
dˆ ƒ ƒ ˆƒtksFJ ‚tttˆƒt
dˆ ƒ ƒˆƒdt ksrJ ‚tttdˆ ƒƒˆƒtks’J ‚tdtˆƒd  ˆƒtks²J ‚ttˆd ƒˆƒdksÎJ ‚ttˆƒd ˆƒdt ksîJ ‚ttd	ˆ d d ƒˆƒtdd	ƒksJ ‚ttdƒˆd
  ˆ d	 ˆƒd	tdƒd
  ksLJ ‚tˆd d
 ˆ ˆƒd u slJ ‚tttˆƒƒˆƒdt ksŒJ ‚ttˆƒd tˆƒd  ˆƒtju s¶J ‚ttˆƒ| ƒtju sÐJ ‚ttˆƒttˆƒ  ˆƒdt ksøJ ‚tˆtd|  ƒ | ƒtksJ ‚ttˆƒˆƒd u s0J ‚tttˆ ƒˆƒdt ksPJ ‚ttt| ƒ|ƒdt kspJ ‚tt|ƒ|ƒd u sˆJ ‚ttt	t|ƒttd| ƒ  ƒdd|ƒdt ksÀJ ‚ttt	td| ƒtt|ƒ  ƒdd|ƒdt ksøJ ‚ttt|ƒƒ|ƒdt ksJ ‚ttdt | ƒ|ƒtks8J ‚tt|tt|ƒ  ƒ|ƒd u s\J ‚ttt|d ƒt|ƒ ƒ|ƒdt ksˆJ ‚tt	ˆƒˆƒd u s J ‚ttˆƒtˆƒ ˆƒd u sÀJ ‚ttˆƒ|  | ƒd u sÜJ ‚tttttˆƒƒƒƒˆƒtks J ‚t‡fdd„tttt
ttfD ƒƒs(J ‚ttttˆƒƒƒˆƒtksHJ ‚ttttˆƒtˆƒ ƒƒˆƒdt kstJ ‚ttˆƒtjkˆƒdt ks–J ‚tˆdkˆƒd u s®J ‚tˆd	 ˆd  d
 ˆƒd u sÒJ ‚ttˆƒˆƒd u sêJ ‚ttˆd d
 ƒˆƒd u s
J ‚tˆd d d ˆƒd u s*J ‚ttˆ d	 ˆƒd u sFJ ‚tttd
ˆƒƒtd
ˆƒ ˆƒd u snJ ‚tdˆdk fˆd ˆd
kft	ˆƒdfƒ}t|ˆƒd u sªJ ‚tdd	d	ƒ‰ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Nr)   rA   ÚzTr+   r-   rD   r6   r0   r/   F)Úevaluatec                 3   s$   | ]}t t|ˆ ƒƒˆ ƒtkV  qd S r=   )r   r
   r   )Ú.0Úfr(   r:   r;   Ú	<genexpr>¦   rJ   z#test_periodicity.<locals>.<genexpr>r   r.   Úmc                      s   t tˆ ƒˆ ƒS r=   ©r   r   r:   ©rT   r:   r;   r<   º   rJ   z"test_periodicity.<locals>.<lambda>c                      s   t tˆ d ƒˆ ƒS ©N)r   r   rU   r:   rV   r:   r;   r<   »   rJ   c                      s   t tˆ ƒˆ d ƒS rW   rU   r:   rV   r:   r;   r<   ¼   rJ   c                      s   t tˆ d ƒˆ d ƒS rW   rU   r:   rV   r:   r;   r<   ½   rJ   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ZZeror   r
   ÚallrL   r   r   r   r   r&   r@   )rA   rO   Úpr:   )rT   r)   r;   Útest_periodicityt   s‚    """""0 ( , 04,   *4  *(   88  $, $ÿ ,"$  ((rZ   c                  C   s²   t dƒ} t dƒ}tt| ƒ| ddtks*J ‚tt| ƒt| ƒ | dddt ksPJ ‚tt| ƒ| ƒdt ksjJ ‚tt| | ƒ| ƒdt t|ƒ ksJ ‚tttt| ƒƒƒ| ƒtks®J ‚d S )Nr)   rA   T)Úcheckr-   )	r   r   r   r   r   r   r   Úabsr
   ©r)   rA   r:   r:   r;   Útest_periodicity_checkÀ   s    &&r^   c                   C   s¾   t tjtdƒtdƒgƒdks J ‚t td td tgƒtks>J ‚t dt td gƒdt ks^J ‚t tjdt gƒd u sxJ ‚t tdƒdt  td tddƒ tjt gƒtdƒdt  ksºJ ‚d S )Nr-   r0   é   r6   r/   )r   r   rL   r   ÚOner   r   r:   r:   r:   r;   Ú	test_lcimË   s
      ra   c                   C   sÚ   t dt tt dt¡ddks"J ‚t dt ttt dƒddksDJ ‚t td ttdtƒddksdJ ‚t dtd  tt dt¡ddksŠJ ‚t dtd  tt t d¡ddks²J ‚t ttƒtƒdksÈJ ‚tt	d	d
„ ƒ d S )Nr/   r   )rG   TFr-   r0   r.   c                   S   s   t ttƒttƒS r=   )r   r   r)   r*   r:   r:   r:   r;   r<   Ú   rJ   z test_is_convex.<locals>.<lambda>)
r   r)   r"   r?   r   ZLopenÚRopenr   r&   r@   r:   r:   r:   r;   Útest_is_convexÓ   s    "" &(rc   c                  C   s‚  t dƒ\} }tt| ƒ| tt d td ƒƒt d td hksBJ ‚tt| ƒ| t dtd ¡ƒtju shJ ‚tt| ƒ| ƒtju s€J ‚tt| ƒt	| ƒ | tdtƒƒtd tt
ddƒ hks¸J ‚tt| ƒ| tdtƒƒdthksÚJ ‚t| d | d  | ƒtt
ddƒƒksJ ‚t| d | d  | tddƒƒtju s.J ‚t| d d | d  | ƒdtd	ƒ dtd	ƒ hksfJ ‚t| d d | d  | tddƒƒdtd	ƒ hksœJ ‚t| d | d  d| d   | tjƒtd
dt
ddƒƒksÚJ ‚tt| ƒ| ƒtju sôJ ‚tt| ƒ|  | tjƒdhksJ ‚tt	| ƒ| ttddƒtddƒƒƒdt thksJJ ‚t|| tjƒtjksdJ ‚t|| tjƒtjks~J ‚d S )Núx yr-   r   r6   r0   r.   r1   r2   r3   rD   r/   éúÿÿÿr5   )r	   r   r   r"   r   rb   r   r>   r   r   r   r   r#   r   r9   r   r   r%   r]   r:   r:   r;   Útest_stationary_pointsÝ   sX    ÿÿÿÿÿÿ
ÿ
ÿ
 ÿ
$ÿ
ÿ
ÿ
 
ÿ
ÿ
rf   c                
      s  t dƒ\‰ ‰ttˆ ƒˆ ƒtju s$J ‚ttˆ ƒˆ tddƒƒtdƒksFJ ‚ttˆ ƒˆ ƒtu s\J ‚ttˆ ƒˆ tt d td ƒƒtju s†J ‚ttˆ ƒt	ˆ ƒ ˆ tj
ƒtjksªJ ‚tttˆ ƒt	ˆ ƒ ˆ tttddƒ ttddƒ ƒƒƒtdƒd ksðJ ‚tˆ d ˆ d  ˆ ƒtu sJ ‚tˆ d ˆ d  ˆ td	dƒƒtd
ƒks<J ‚tˆ d ˆ d  ˆ td	dƒƒtddƒksjJ ‚ttˆ d  ˆ d  ˆ d  d ˆ ƒƒdtdƒ d tddƒ ks²J ‚ttˆ ƒˆ tt dƒƒtdƒksØJ ‚ttˆ ƒˆ  ˆ tj
ƒtju súJ ‚tt	ˆ ƒˆ ttddƒtddƒƒƒtju s(J ‚tt	ˆ ƒtˆ ƒ ˆ tj
ƒtdƒksPJ ‚tˆˆ tj
ƒˆkshJ ‚tttd t ƒttddƒƒdksJ ‚ttdtd  dt  ƒttddƒƒdksÀJ ‚ttdt dtd  d  ƒttddƒƒdksôJ ‚tˆ tˆ d d ƒ ˆ tj
ƒdksJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ d S )Nrd   r   r/   r6   r0   r4   r2   r-   r1   é   r3   é
   é)   i   i+  re   r5   é<   é   i  é   c                      s   t tˆ ƒˆ tjƒS r=   ©r!   r   r   r>   r:   r(   r:   r;   r<     rJ   ztest_maximum.<locals>.<lambda>c                      s   t ttˆ ƒƒˆ tjƒS r=   )r!   r   r   r   r>   r:   r(   r:   r;   r<     rJ   c                      s"   t dˆ d ˆd  d  ˆ tjƒS ©Nr/   r-   )r!   r   r>   r:   r]   r:   r;   r<     rJ   c                      s   t tˆ ƒtˆ ƒƒS r=   )r!   r   r:   r(   r:   r;   r<     rJ   c                      s   t tˆ ƒˆ ˆ tjƒS r=   rm   r:   r]   r:   r;   r<     rJ   c                      s   t tˆ ƒtjƒS r=   )r!   r   r   r`   r:   r(   r:   r;   r<     rJ   )r	   r!   r   r   r`   r"   r   r   r   r   r9   rL   r   r   r   r   r   ÚNegativeOner%   r\   r*   r&   rM   r:   r:   r]   r;   Útest_maximumÿ   s@    "*$4
ÿ ,.&ÿ
&" ÿ
((04(rp   c                
      sÎ  t dƒ\‰ ‰ttˆ ƒˆ ƒtju s$J ‚ttˆ ƒˆ tddƒƒtdƒksFJ ‚ttˆ ƒˆ ƒt u s^J ‚ttˆ ƒˆ tt d td ƒƒtju sˆJ ‚ttˆ ƒt	ˆ ƒ ˆ tj
ƒtddƒks°J ‚tttˆ ƒt	ˆ ƒ ˆ tttddƒ ttddƒ ƒƒƒtdƒ d ksøJ ‚tˆ d ˆ d  ˆ ƒtd	dƒksJ ‚tˆ d ˆ d  ˆ td
dƒƒtddƒksLJ ‚tˆ d ˆ d  ˆ d  d ˆ ƒtdƒks|J ‚ttˆ ƒˆ tdtƒƒtdƒks J ‚ttˆ ƒˆ  ˆ tj
ƒt u sÂJ ‚tt	ˆ ƒˆ ttddƒtddƒƒƒtju sðJ ‚tt	ˆ ƒtˆ ƒ ˆ tj
ƒtdƒ ksJ ‚tˆˆ tj
ƒˆks2J ‚tˆ tˆ d d ƒ ˆ tj
ƒdksZJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ tt‡ ‡fdd„ƒ tt‡ fdd„ƒ d S )Nrd   r/   r6   r.   r-   r0   r4   r2   içÿÿÿr1   r   r5   rh   rD   re   c                      s   t tˆ ƒˆ tjƒS r=   ©r    r   r   r>   r:   r(   r:   r;   r<   5  rJ   ztest_minimum.<locals>.<lambda>c                      s   t ttˆ ƒƒˆ tjƒS r=   )r    r   r   r   r>   r:   r(   r:   r;   r<   6  rJ   c                      s"   t dˆ d ˆd  d  ˆ tjƒS rn   )r    r   r>   r:   r]   r:   r;   r<   7  rJ   c                      s   t tˆ ƒtˆ ƒƒS r=   )r    r   r:   r(   r:   r;   r<   8  rJ   c                      s   t tˆ ƒˆ ˆ tjƒS r=   rq   r:   r]   r:   r;   r<   9  rJ   c                      s   t tˆ ƒtjƒS r=   )r    r   r   r`   r:   r(   r:   r;   r<   :  rJ   )r	   r    r   r   ro   r"   r   r   r   r   r9   r   r   r   r   r   r%   r&   rM   r:   r:   r]   r;   Útest_minimum   s4    "*(4ÿ&.0$" ÿ
*(rr   c                  C   sF   t dƒ} ttdƒ| d  dt| d d ƒ  | ƒtdƒd ksBJ ‚d S )NÚtr0   r/   r-   )r	   r!   r   )rs   r:   r:   r;   Útest_issue_19869=  s    (
ÿrt   c                  C   s8   t ddd} t| ƒ}t|| tjƒtdtddƒks4J ‚d S )Nr)   Tr+   r   F)r   r\   r   r   r9   r"   r   )r)   rR   r:   r:   r;   Útest_issue_16469C  s    ru   c                   C   s0   t ttt td tjd   ƒtƒdks,J ‚d S )Nr6   r-   r4   )r   r   r   r   r)   r   rL   r:   r:   r:   r;   Útest_issue_18747I  s    rv   N)DZsympy.core.numbersr   r   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r	   Z$sympy.functions.elementary.complexesr
   r   Z&sympy.functions.elementary.exponentialr   r   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z(sympy.functions.elementary.trigonometricr   r   r   r   r   r   Z'sympy.functions.special.error_functionsr   Z"sympy.matrices.expressions.matexprr   Zsympy.simplify.simplifyr   Zsympy.calculus.utilr   r   r   r   r   r   r   r    r!   Zsympy.sets.setsr"   r#   r$   r%   Zsympy.testing.pytestr&   r'   Z	sympy.abcr)   r*   rC   rH   rN   rZ   r^   ra   rc   rf   rp   rr   rt   ru   rv   r:   r:   r:   r;   Ú<module>   s<    ,(!
K
"!