U
    Ç-eº:  ã                   @   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>t‚ttˆ ƒˆ tdtƒƒtddƒksbt‚ttˆ ƒˆ tdtƒƒtt tƒksˆt‚ttˆ ƒˆ ttd tƒƒtt dƒks²t‚tˆ d ˆ d  ˆ tddƒƒttt t	dd	ƒƒtt	d
dƒtƒƒksøt‚tdˆ d  ˆ tddƒƒtdtƒks"t‚tt
ˆ ƒˆ tddƒƒtt
dƒt
dƒƒksPt‚ttˆ ƒˆ  ˆ tjƒtt dƒksxt‚ttdˆ  d ƒˆ tddƒƒtdtdƒƒksªt‚tˆ ˆ d  ˆ d ˆ   ˆ tjƒtdƒksÚt‚tˆ ˆ d  ˆ d ˆ   |  ˆ tjƒt| ƒkst‚ttˆ ƒˆ ttddƒtdƒƒƒtttdƒ dƒttdƒƒƒksRt‚ttˆ ƒˆ tt dƒƒtddƒkszt‚ttˆ ƒˆ tjƒtjks˜t‚tˆ tˆ d d ƒ ˆ tjƒt dd¡ksÈt‚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:   ú_/var/www/html/Darija-Ai-Train/env/lib/python3.8/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   ÚAssertionErrorr   r   r%   r   r   r   r   r9   r   r#   r   ÚEmptySetÚopenr&   ÚNotImplementedError)Úyr*   Úbr:   r(   r;   Útest_function_range   s\    ÿÿ
ÿ
ÿ"ÿÿ
ÿ

ÿ
ÿ
 ÿ
$ÿ
ÿ
ÿ
0rD   c               	   C   sH  t dƒ} tt| ƒ| tddt ƒƒtddt ƒks4t‚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œt‚t| d | d d  | t	j
ƒttt dddƒtdtddƒƒksÞt‚tt| ƒtd|  d ƒ | t	j
ƒttddƒtddƒkst‚tdt| d ƒ | t	j
ƒtdtddƒksHt‚td|  d | t	j
ƒtt t d¡t dt¡ƒks€t‚td| d d  d | t	j
ƒtt t d	¡t d	d¡t dt¡ƒksÊt‚ttt| ƒd d ƒ| t	j
ƒ}| dt d ¡r t‚| d
¡st‚t dddd}t| d|  | t	j
ƒtdtƒksDt‚d S )Nr)   r   r-   FTr0   r/   r6   éþÿÿÿr2   Úd)ZevenÚzero)r   r   r   r"   r   r>   r   r%   r   r   r9   r   r   r   r@   Úcontains)r)   ÚdomainrF   r:   r:   r;   Útest_continuous_domain=   s2    ,,ÿÿÿ ÿ
.ÿ
$ÿ
rJ   c                	   C   sD  t ttdt ƒ tddddƒ¡tƒttjdddƒks8t‚t tttd ƒ tddƒ¡tƒttt	dƒ dƒtddƒƒksxt‚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àt‚t tttd  ƒ tj¡tƒttjtdƒƒkst‚t tttd  ƒ tj¡tƒttjtdƒƒksHt‚t ttd d	t  d td  ƒ tj¡tƒttjtdƒƒksŒt‚t td	dttd  ƒ tdd	ƒ¡tƒtt tƒksÄt‚t tdttd  ƒ tdd	ƒ¡tƒttd	ƒd dƒks t‚t tttd d  ƒ tj¡tƒttjtddƒƒks:t‚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ªt‚t tdƒ td	dƒ¡tƒtjksÐt‚t ttd td  ƒ tdtƒ¡tƒttddddƒtdtƒƒkst‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ d S )Nr-   r/   TFr.   r6   é   rE   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   rL   c                   S   s   t ttƒ tj¡ttƒS r=   )r   r#   r)   Ú	intersectr   r9   r*   r:   r:   r:   r;   r<   q   rL   )r   r#   r)   rM   r"   r   ÚHalfr>   r%   r   r   r9   r$   r*   r   r?   r&   Ú
ValueErrorrA   r:   r:   r:   r;   Útest_not_empty_inS   sb    "ÿÿ" ÿÿÿ
ÿ
,ÿ
$
ÿ
"ÿ
 ÿ
ÿÿ" ÿþ
&$ÿ
ÿrP   c                     s  t dƒ‰t dƒ} t ddd}ttdˆ ƒˆƒtks6t‚tdtdˆ ƒ ˆƒtd ksXt‚ttˆƒd ˆƒdt ksvt‚td	td	ˆ ƒ ˆƒtd	 ks˜t‚ttˆƒtˆƒ ˆƒdt ksºt‚ttˆƒtˆƒ ˆƒdt ksÜt‚ttˆƒtˆƒ ˆƒdt ksþt‚ttdˆ ƒtdˆ ƒ |  ˆƒtd ks.t‚ttˆƒtˆƒ ˆƒtksNt‚ttˆƒtdˆ ƒ ˆƒdt ksvt‚ttˆƒd
 ˆƒdt ks–t‚ttdˆ ƒtˆƒtˆƒ  ˆƒtksÂt‚tt	tˆƒƒˆƒdt ksât‚tt
tdˆ ƒƒttdˆ ƒƒ ˆƒtkst‚ttdˆ ƒt	tˆƒtdˆ ƒ ƒ ˆƒtksFt‚tttˆƒtdˆ ƒ ƒˆƒdt ksrt‚tttdˆ ƒƒˆƒtks’t‚tdtˆƒd  ˆƒtks²t‚ttˆd ƒˆƒdksÎt‚ttˆƒd ˆƒdt ksît‚ttd	ˆ d d ƒˆƒtdd	ƒkst‚ttdƒˆd
  ˆ d	 ˆƒd	tdƒd
  ksLt‚tˆd d
 ˆ ˆƒd kslt‚tttˆƒƒˆƒdt ksŒt‚ttˆƒd tˆƒd  ˆƒtjks¶t‚ttˆƒ| ƒtjksÐt‚ttˆƒttˆƒ  ˆƒdt ksøt‚tˆtd|  ƒ | ƒtkst‚tt	ˆƒˆƒd ks0t‚tt	tˆ ƒˆƒdt ksPt‚tt	t| ƒ|ƒdt kspt‚tt	|ƒ|ƒd ksˆt‚tt	t
t|ƒttd| ƒ  ƒdd|ƒdt ksÀt‚tt	t
td| ƒtt|ƒ  ƒdd|ƒdt ksøt‚tt	t|ƒƒ|ƒdt kst‚tt	dt | ƒ|ƒtks8t‚tt	|tt|ƒ  ƒ|ƒd ks\t‚tt	t|d ƒt|ƒ ƒ|ƒdt ksˆt‚tt
ˆƒˆƒd ks t‚tt	ˆƒtˆƒ ˆƒd ksÀt‚ttˆƒ|  | ƒd ksÜt‚tttttˆƒƒƒƒˆƒtks t‚t‡fdd„ttttttfD ƒƒs(t‚ttttˆƒƒƒˆƒtksHt‚ttttˆƒtˆƒ ƒƒˆƒdt kstt‚ttˆƒtjkˆƒdt ks–t‚tˆdkˆƒd ks®t‚tˆd	 ˆd  d
 ˆƒd ksÒt‚ttˆƒˆƒd ksêt‚ttˆd d
 ƒˆƒd ks
t‚tˆd d d ˆƒd ks*t‚ttˆ d	 ˆƒd ksFt‚tttd
ˆƒƒtd
ˆƒ ˆƒd ksnt‚tdˆdk fˆd ˆd
kft
ˆƒdfƒ}t|ˆƒd ksªt‚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)   rB   ÚzTr+   r-   rE   r6   r0   r/   F)Úevaluatec                 3   s$   | ]}t t|ˆ ƒƒˆ ƒtkV  qd S r=   )r   r
   r   )Ú.0Úfr(   r:   r;   Ú	<genexpr>¦   s     z#test_periodicity.<locals>.<genexpr>r   r.   Úmc                      s   t tˆ ƒˆ ƒS r=   ©r   r   r:   ©rV   r:   r;   r<   º   rL   z"test_periodicity.<locals>.<lambda>c                      s   t tˆ d ƒˆ ƒS ©N)r   r   rW   r:   rX   r:   r;   r<   »   rL   c                      s   t tˆ ƒˆ d ƒS rY   rW   r:   rX   r:   r;   r<   ¼   rL   c                      s   t tˆ d ƒˆ d ƒS rY   rW   r:   rX   r:   r;   r<   ½   rL   )r   r   r   r   r>   r   r   r   r   r   r   r   r   r   r   r   ZZeror   r
   ÚallrN   r   r   r   r   r&   rA   )rB   rQ   Úpr:   )rV   r)   r;   Útest_periodicityt   sŒ    """""0 ( , 04,   *4  *(   88  $, $     ÿ ,"$  ((r\   c                  C   s²   t dƒ} t dƒ}tt| ƒ| ddtks*t‚tt| ƒt| ƒ | dddt ksPt‚tt| ƒ| ƒdt ksjt‚tt| | ƒ| ƒdt t|ƒ kst‚tt	tt| ƒƒƒ| ƒtks®t‚d S )Nr)   rB   T)Úcheckr-   )
r   r   r   r   r>   r   r   r   Úabsr
   ©r)   rB   r:   r:   r;   Útest_periodicity_checkÀ   s    &&r`   c                   C   s¾   t tjtdƒtdƒgƒdks t‚t td td tgƒtks>t‚t dt td gƒdt ks^t‚t tjdt gƒd ksxt‚t tdƒdt  td tddƒ tjt gƒtdƒdt  ksºt‚d S )Nr-   r0   é   r6   r/   )r   r   rN   r>   r   ÚOner   r   r:   r:   r:   r;   Ú	test_lcimË   s
      rc   c                   C   sÚ   t dt tt dt¡ddks"t‚t dt ttt dƒddksDt‚t td ttdtƒddksdt‚t dtd  tt dt¡ddksŠt‚t dtd  tt t d¡ddks²t‚t ttƒtƒdksÈt‚t	t
d	d
„ ƒ d S )Nr/   r   )rI   TFr-   r0   r.   c                   S   s   t ttƒttƒS r=   )r   r   r)   r*   r:   r:   r:   r;   r<   Ú   rL   z test_is_convex.<locals>.<lambda>)r   r)   r"   r@   r   r>   ZLopenÚRopenr   r&   rA   r:   r:   r:   r;   Útest_is_convexÓ   s    "" &(re   c                  C   s‚  t dƒ\} }tt| ƒ| tt d td ƒƒt d td hksBt‚tt| ƒ| t dtd ¡ƒtjksht‚tt	| ƒ| ƒtjks€t‚tt| ƒt
| ƒ | tdtƒƒtd ttddƒ hks¸t‚tt| ƒ| tdtƒƒdthksÚt‚t| d | d  | ƒttddƒƒkst‚t| d | d  | tddƒƒtjks.t‚t| d d | d  | ƒdtd	ƒ dtd	ƒ hksft‚t| d d | d  | tddƒƒdtd	ƒ hksœt‚t| d | d  d| d   | tjƒtd
dtddƒƒksÚt‚tt| ƒ| ƒtjksôt‚tt| ƒ|  | tjƒdhkst‚tt
| ƒ| ttddƒtddƒƒƒdt thksJt‚t|| tjƒtjksdt‚t|| tjƒtjks~t‚d S )Núx yr-   r   r6   r0   r.   r1   r2   r3   rE   r/   éúÿÿÿr5   )r	   r   r   r"   r   r>   rd   r   r?   r   r   r   r   r#   r   r9   r   r   r%   r_   r:   r:   r;   Útest_stationary_pointsÝ   sX    ÿÿÿÿÿÿ
ÿ
ÿ
 ÿ
$ÿ
ÿ
ÿ
 
ÿ
ÿ
rh   c                
      s  t dƒ\‰ ‰ttˆ ƒˆ ƒtjks$t‚ttˆ ƒˆ tddƒƒtdƒksFt‚ttˆ ƒˆ ƒtks\t‚ttˆ ƒˆ tt	 d t	d ƒƒtjks†t‚ttˆ ƒt
ˆ ƒ ˆ tjƒtjksªt‚tttˆ ƒt
ˆ ƒ ˆ tt	tddƒ t	tddƒ ƒƒƒtdƒd ksðt‚tˆ d ˆ d  ˆ ƒtkst‚tˆ d ˆ d  ˆ td	dƒƒtd
ƒks<t‚tˆ d ˆ d  ˆ td	dƒƒtddƒksjt‚ttˆ d  ˆ d  ˆ d  d ˆ ƒƒdtdƒ d tddƒ ks²t‚ttˆ ƒˆ tt dƒƒtdƒksØt‚ttˆ ƒˆ  ˆ tjƒtjksút‚tt
ˆ ƒˆ ttddƒtddƒƒƒtjks(t‚tt
ˆ ƒtˆ ƒ ˆ tjƒtdƒksPt‚tˆˆ tjƒˆksht‚tttd t ƒttddƒƒdkst‚ttdtd  dt  ƒttddƒƒdksÀt‚ttdt dtd  d  ƒttddƒƒdksôt‚tˆ tˆ d d ƒ ˆ tjƒdkst‚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 )Nrf   r   r/   r6   r0   r4   r2   r-   r1   é   r3   é
   é)   i   i+  rg   r5   é<   é   i  é   c                      s   t tˆ ƒˆ tjƒS r=   ©r!   r   r   r?   r:   r(   r:   r;   r<     rL   ztest_maximum.<locals>.<lambda>c                      s   t ttˆ ƒƒˆ tjƒS r=   )r!   r   r   r   r?   r:   r(   r:   r;   r<     rL   c                      s"   t dˆ d ˆd  d  ˆ tjƒS ©Nr/   r-   )r!   r   r?   r:   r_   r:   r;   r<     rL   c                      s   t tˆ ƒtˆ ƒƒS r=   )r!   r   r:   r(   r:   r;   r<     rL   c                      s   t tˆ ƒˆ ˆ tjƒS r=   ro   r:   r_   r:   r;   r<     rL   c                      s   t tˆ ƒtjƒS r=   )r!   r   r   rb   r:   r(   r:   r;   r<     rL   )r	   r!   r   r   rb   r>   r"   r   r   r   r   r9   rN   r   r   r   r   r   ÚNegativeOner%   r^   r*   r&   rO   r:   r:   r_   r;   Útest_maximumÿ   s@    "*$4
ÿ ,.&ÿ
&" ÿ
((04(rr   c                
      sÎ  t dƒ\‰ ‰ttˆ ƒˆ ƒtjks$t‚ttˆ ƒˆ tddƒƒtdƒksFt‚ttˆ ƒˆ ƒt ks^t‚ttˆ ƒˆ tt	 d t	d ƒƒtjksˆt‚ttˆ ƒt
ˆ ƒ ˆ tjƒtddƒks°t‚tttˆ ƒt
ˆ ƒ ˆ tt	tddƒ t	tddƒ ƒƒƒtdƒ d ksøt‚tˆ d ˆ d  ˆ ƒtd	dƒkst‚tˆ d ˆ d  ˆ td
dƒƒtddƒksLt‚tˆ d ˆ d  ˆ d  d ˆ ƒtdƒks|t‚ttˆ ƒˆ tdtƒƒtdƒks t‚ttˆ ƒˆ  ˆ tjƒt ksÂt‚tt
ˆ ƒˆ ttddƒtddƒƒƒtjksðt‚tt
ˆ ƒtˆ ƒ ˆ tjƒtdƒ kst‚tˆˆ tjƒˆks2t‚tˆ tˆ d d ƒ ˆ tjƒdksZt‚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 )Nrf   r/   r6   r.   r-   r0   r4   r2   içÿÿÿr1   r   r5   rj   rE   rg   c                      s   t tˆ ƒˆ tjƒS r=   ©r    r   r   r?   r:   r(   r:   r;   r<   5  rL   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  rL   c                      s"   t dˆ d ˆd  d  ˆ tjƒS rp   )r    r   r?   r:   r_   r:   r;   r<   7  rL   c                      s   t tˆ ƒtˆ ƒƒS r=   )r    r   r:   r(   r:   r;   r<   8  rL   c                      s   t tˆ ƒˆ ˆ tjƒS r=   rs   r:   r_   r:   r;   r<   9  rL   c                      s   t tˆ ƒtjƒS r=   )r    r   r   rb   r:   r(   r:   r;   r<   :  rL   )r	   r    r   r   rq   r>   r"   r   r   r   r   r9   r   r   r   r   r   r%   r&   rO   r:   r:   r_   r;   Útest_minimum   s4    "*(4ÿ&.0$" ÿ
*(rt   c                  C   sF   t dƒ} ttdƒ| d  dt| d d ƒ  | ƒtdƒd ksBt‚d S )NÚtr0   r/   r-   )r	   r!   r   r>   )ru   r:   r:   r;   Útest_issue_19869=  s    (
ÿrv   c                  C   s8   t ddd} t| ƒ}t|| tjƒtdtddƒks4t‚d S )Nr)   Tr+   r   F)r   r^   r   r   r9   r"   r   r>   )r)   rT   r:   r:   r;   Útest_issue_16469C  s    rw   c                   C   s0   t ttt td tjd   ƒtƒdks,t‚d S )Nr6   r-   r4   )r   r   r   r   r)   r   rN   r>   r:   r:   r:   r;   Útest_issue_18747I  s    rx   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*   rD   rJ   rP   r\   r`   rc   re   rh   rr   rt   rv   rw   rx   r:   r:   r:   r;   Ú<module>   s<    ,(!
K
"!