U
    —9%eüB  ã                   @   st  d dl Zd dl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 d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZmZmZmZ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) dd„ Z*dd„ Z+dd„ Z,dd„ Z-dd„ Z.dd„ Z/dd„ Z0dd„ Z1d d!„ Z2d"d#„ Z3d$d%„ Z4d&d'„ Z5d(d)„ Z6d*d+„ Z7d,d-„ Z8d.d/„ Z9d0d1„ Z:d2d3„ Z;dS )4é    N)Ú	unchanged)ÚFunction)ÚIÚooÚRational)ÚPow)ÚS)ÚSymbol)Úimport_module)Úlog)ÚfloorÚceiling)ÚsqrtÚcbrtÚrootÚMinÚMaxÚ	real_rootÚRem)ÚcosÚsin)Ú	Heaviside)Úlambdify)ÚraisesÚskipÚignore_warningsc                     s	  ddl m‰ m} m} tddd}tddd}tddd}td	dd}td
dd}tddd}tddd}tddd}	tddd}
tddƒdks’t‚tt t ƒt ksªt‚tt |ƒt ksÀt‚t|t ƒt ksÖt‚tt |ƒt ksìt‚t|t ƒt kst‚tt dƒt kst‚tdt ƒt ks4t‚tt |ƒt ksLt‚t|t ƒt ksdt‚tt |ƒt ks|t‚t|t ƒt ks”t‚tt tƒt ks¬t‚ttt ƒt ksÄt‚t||ƒ|ksØt‚tt||ƒsêt‚t||ƒt||ƒkst‚t|dƒ|kst‚td|ƒ|ks,t‚t||ƒ|ks@t‚t||ƒ|ksTt‚t||ƒ|ksht‚t||ƒ|ks|t‚t|tƒ|kst‚tt|ƒ|ks¤t‚t||ƒ|ks¸t‚t|dƒ|ksÌt‚td|ƒ|ksàt‚t||ƒ|ksôt‚t||ƒ|kst‚t||ƒ|kst‚t||ƒ|ks0t‚t|tƒ|ksDt‚tt|ƒ|ksXt‚tddƒdkslt‚td|ƒdks€t‚t|dƒdks”t‚td|ƒdks¨t‚t|dƒdks¼t‚tdtƒdksÐt‚ttdƒdksät‚t||ƒ|ksøt‚tt||ƒs
t‚t||ƒt||ƒks$t‚t|tƒ|ks8t‚tt|ƒ|ksLt‚t||ƒ|ks`t‚t|tƒ|kstt‚tt|ƒ|ksˆt‚tttƒtksœt‚t||ƒj	tks²t‚t||ƒj	tksÈt‚t||	ƒj	tksÞt‚t||ƒj	tksôt‚tƒ t
jkst‚tˆ ƒˆ kst‚tˆ | ƒt| ˆ ƒks2t‚tˆ | |ƒt|| ˆ ƒksPt‚tˆ t| |ƒƒt|| ˆ ƒksrt‚tˆ t| t ƒƒtˆ | ƒks”t‚t|t||||ƒ|ks°t‚t|||ƒ|ksÆt‚t|td||dƒt|dƒksèt‚tdˆ ||t||dddƒ
tdˆ ||ƒkst‚tdˆ d| ƒtdˆ | ƒks6t‚tdddˆ ||ƒt|ˆ dƒksZt‚tttˆ ƒtˆ ƒƒstt‚ttˆ ƒtˆ ƒƒttˆ ƒtˆ ƒƒksžt‚ttˆ ƒtˆ ƒƒ ˆ d¡tdƒksÆt‚ttˆ ƒtˆ ƒƒ ˆ t
j¡tt
jƒksòt‚tt‡ fdd„ƒ ttdd„ ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tdˆ ƒ ˆ ¡tdˆ  ƒksXt‚tˆ dƒ ˆ ¡tdˆ  ƒkszt‚tdˆ  ddˆ   ƒ ˆ ¡tˆ tddˆ  d ƒ ƒ dtdˆ  tdˆ  ƒ d ƒ  ksØt‚td ƒ}tddt|dƒdƒ ƒsþt‚tdˆ ƒ}| ¡ jdˆ fks t‚t||||
ƒ}|jd!ks>t‚|jd!ksNt‚|jdks^t‚t||ƒ}|jdksxt‚|jdksˆt‚|jd!ks˜t‚t|||ƒ}|jd ks´t‚|jdksÄt‚|jd!ksÔt‚t|||
ƒ}|jd ksðt‚|jd k	s t‚|jd k	st‚d S )"Nr   ©ÚxÚyÚzÚnT©ÚnegativeÚn_Únn©ZnonnegativeÚnn_Úp©ZpositiveÚp_Únp)ÚnonpositiveÚnp_Úr©Úrealé   é   éùÿÿÿé   éþÿÿÿé   éè  éd   éœÿÿÿc                      s   t tˆ ƒtˆ ƒƒ ˆ t¡S ©N)r   r   r   Úsubsr   © ©r   r;   úr/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/functions/elementary/tests/test_miscellaneous.pyÚ<lambda>i   ó    ztest_Min.<locals>.<lambda>c                   S   s   t tƒS r9   ©r   r   r;   r;   r;   r=   r>   j   r?   c                      s
   t tˆ ƒS r9   r@   r;   r<   r;   r=   r>   k   r?   c                      s   t tjˆ ƒS r9   )r   r   ÚComplexInfinityr;   r<   r;   r=   r>   l   r?   ÚfF)Ú	sympy.abcr   r   r   r	   r   ÚAssertionErrorr   r   Úfuncr   ÚInfinityr   r   r   r:   ÚHalfr   Ú
ValueErrorÚdiffr   r   r    ÚargsÚis_positiveÚis_nonnegativeÚis_negative)r   r   r    r#   r$   r&   r'   r)   r*   r,   r-   rB   ÚeÚmr;   r<   r=   Útest_Min   sÚ    """. $*(,""4ÿ

rP   c            
   
      sŠ  ddl m‰ m} m} tddd}tddd}tddd}td	dd
}tddd
}tddd}tddƒdksnt‚tƒ tjks~t‚tˆ ƒˆ ksŽt‚tˆ | ƒt| ˆ ƒks¦t‚tˆ | |ƒt|| ˆ ƒksÂt‚tˆ t| |ƒƒt|| ˆ ƒksât‚tˆ t	| t
ƒƒtˆ | ƒkst‚t|t
 ||dƒt|dƒks$t‚t|t
 ||ƒ|ks>t‚tdˆ ||t
 tj||dƒ	tdˆ |ƒkslt‚tdˆ d| ƒtdˆ | ƒksŒt‚t||d |d ƒd| ks®t‚tdddˆ ||ƒt|ˆ dƒksÒt‚ttˆ ƒtˆ ƒƒttˆ ƒtˆ ƒƒksüt‚ttˆ ƒtˆ ƒƒ ˆ d¡tdƒks$t‚ttˆ ƒtˆ ƒƒ ˆ tj¡ttjƒksPt‚tt‡ fdd„ƒ ttdd„ ƒ tt‡ fdd„ƒ ttdd„ ƒ t|t
 ||dƒt|dƒks²t‚t|t
 ||dƒt|dƒksÔt‚tdˆ ƒ ˆ ¡tˆ d ƒksöt‚tˆ dƒ ˆ ¡tˆ d ƒkst‚tˆ d dˆ  dƒ ˆ ¡dˆ  tˆ d tdˆ d ƒ ƒ tˆ tdˆ d ƒ d ƒ kstt‚tdˆ ƒ}| ¡ jdˆ fks–t‚t||||ƒ}	|	jdks´t‚|	jdksÄt‚|	jdksÔt‚t||ƒ}	|	jdksît‚|	jdksþt‚|	jdkst‚t|||ƒ}	|	jd ks*t‚|	jd ks:t‚|	jd ksJt‚t|||ƒ}	|	jd ksft‚|	jdksvt‚|	jdks†t‚d S )Nr   r   r    Tr!   r#   r$   r%   r'   r(   r)   r-   r.   r0   r1   r3   r5   r6   r7   r8   c                      s   t tˆ ƒtˆ ƒƒ ˆ t¡S r9   )r   r   r   r:   r   r;   r<   r;   r=   r>   ­   r?   ztest_Max.<locals>.<lambda>c                   S   s   t tƒS r9   ©r   r   r;   r;   r;   r=   r>   ®   r?   c                      s
   t tˆ ƒS r9   rQ   r;   r<   r;   r=   r>   ¯   r?   c                   S   s   t tjdƒS )Nr5   )r   r   rA   r;   r;   r;   r=   r>   °   r?   F)rC   r   r   r   r	   r   rD   r   ÚNegativeInfinityr   r   r   r   r:   rG   r   rH   rI   r   r    rJ   rK   rL   rM   )
r   r   r    r#   r$   r'   r)   r-   rN   rO   r;   r<   r=   Útest_Max‘   sl      ". "$*(,"""" ÿÿ


rS   c               
   C   s$  t ddd} t dddd}t dddd}t ddd	}t d
dd}t dddd}t ddd}t ddd}t ddd}t ddd}	| |||||||||	g
}
ttfD ]~}tj|
ddD ]h\}}|||ƒjsÌt‚|jrê|jrê|||ƒjsèt‚n:|jr|jr|||ƒjs$t‚n|||ƒjd ks$t‚|j	rH|j	rH|||ƒj	s‚t‚n:|j
rl|j
rl|||ƒj
s‚t‚n|||ƒj	d ks‚t‚|jr¦|jr¦|||ƒjsàt‚n:|jrÊ|jrÊ|||ƒjsàt‚n|||ƒjd ksàt‚|jr|jr|||ƒjsJt‚nF|jdkr4|jdkr4|||ƒjdksJt‚n|||ƒjd ksJt‚|jrn|jrn|||ƒjs´t‚nF|jdkrž|jdkrž|||ƒjdks´t‚n|||ƒjd ks´t‚|jrØ|jrØ|||ƒjst‚q²|jdkr|jdkr|||ƒjdkst‚q²|||ƒjd ks²t‚q²qžd S )Nr-   Tr.   Úa)r/   Z	algebraicÚt)r/   ZtranscendentalÚq)Úrationalr'   )Z
irrationalr    F)rW   ÚintegerÚi©rX   Úo)ZoddrN   )ZevenÚk)Úprimer3   )Úrepeat)r	   r   r   ÚitÚproductZis_realrD   Zis_algebraicZis_transcendentalZis_rationalZis_irrationalÚ
is_integerZis_nonintegerZis_oddZis_evenZis_prime)r-   rT   rU   rV   r'   r    rY   r[   rN   r\   ZrealsÚextr   r   r;   r;   r=   Útest_minmax_assumptionsÓ   sX    rc   c                  C   sp   t ddd} tt| ƒ| ƒt| ƒks&t‚tt| ƒ| ƒ| ks<t‚tt| ƒ| ƒ| ksRt‚tt| ƒ| ƒt| ƒkslt‚d S )Nr   Tr.   )r	   r   r   rD   r   r   r<   r;   r;   r=   Útest_issue_8413  s
    rd   c                  C   sÆ  ddl m}  tddd}tddd}tddƒtdƒks:t‚tddƒdksLt‚tdd	ƒdtdd	ƒ ksht‚tdd	ƒtdƒks~t‚tdd
ƒdtddƒ d ksžt‚tddƒdks°t‚tddƒtdƒt ksÊt‚tddƒdksÜt‚t| dƒt| ƒksòt‚t| dƒ| kst‚t| d	ƒ| tdd	ƒ ks$t‚t| d	ƒt| ƒks<t‚t| d
ƒ| tddƒ ksZt‚t| |ƒ| d|  ksvt‚t| | ƒ| d|  ks”t‚t| ||ƒdd| |  | d|   ksÂt‚d S )Nr   r<   r    TrZ   r\   r3   r5   é   éûÿÿÿr1   r0   r4   éÿÿÿÿ)	rC   r   r	   r   r   rD   r   r   r   )r   r    r\   r;   r;   r=   Ú	test_root!  s&     rh   c                  C   sX  t ddƒdkst‚t ddƒtddƒks*t‚tddƒ} t | ƒ| ksDt‚tddƒ}|d }tddƒ}t || | ƒd| | ks€t‚t tddƒƒtddƒ ksžt‚t d	dƒd
ks°t‚tdƒ}tdƒ}t ||ƒ}| dddœ¡dksât‚| dddœ¡dksút‚| tddœ¡ttƒkst‚| dddœ¡tdƒks6t‚| tddœ¡ttƒksTt‚d S )Néøÿÿÿre   r4   iðÿÿÿr1   r2   rg   r3   g       Àg       Àr   r    )r   r    é   )r   rD   r   r	   r:   r   r   r   )r-   Úr1Úr2Zr3r   r    Úgr;   r;   r=   Útest_real_root=  s$    


 
rn   c               	   C   sh   t dƒ} | stdƒ tdƒ}t|tt||d  ƒdƒdƒ}ttƒ ||  d¡ƒdk sZt	‚W 5 Q R X d S )NÚnumpyznumpy not installed.r   r3   re   rg   )
r
   r   r	   r   r   r   r   ÚRuntimeWarningÚarrayrD   )ro   r   rB   r;   r;   r=   Útest_issue_11463T  s    
rr   c                  C   s’  ddl m}  td| ƒ t¡| t| ƒ ks,t‚td| ƒ t¡| t| d ƒ dt|  d ƒ  ksbt‚td| d d|  ƒ t¡d|  td|  ƒ t| d ƒ | d t|  d ƒ t| d ƒ  ksÂt‚td| ƒ t¡| t|  ƒ ksät‚td| ƒ t¡| t|  d ƒ dt| d ƒ  kst‚t| |  dƒ t¡| td|  ƒ t|  d ƒ | td|  ƒ t| d ƒ  dt|  d ƒ t| d ƒ  ksŽt‚d S )Nr   r<   re   r3   r4   )rC   r   r   Úrewriter   rD   r   r<   r;   r;   r=   Ú test_rewrite_MaxMin_as_Heavisidea  s*     ÿ
 ÿÿ"ÿÿþÿrt   c            
      C   s6  ddl m}  ddlm} | ddd\}}}}}| dƒ\}}}	t||ƒ |¡||||kf|dfƒksft‚t|||ƒ |¡||||k||k@ f|||kf|dfƒks¤t‚t||||ƒ |¡||||k||k@ ||k@ f|||k||k@ f|||kf|dfƒksþt‚t||ƒ |¡||||kf|dfƒks*t‚t|||ƒ |¡||||k||k@ f|||kf|dfƒksjt‚t||||ƒ |¡||||k||k@ ||k@ f|||k||k@ f|||kf|dfƒksÆt‚t||ƒ |¡||||kf|dfƒksòt‚t|	||ƒ |¡||	|	|k|	|k@ f|||kf|dfƒks2t‚d S )Nr   )Úsymbols)Ú	Piecewisez	x y z a bTr.   zvx vy va)Úsympy.core.symbolru   Z$sympy.functions.elementary.piecewiserv   r   rs   rD   r   )
ru   rv   r   r   r   rT   ÚbZvxZvyÚvar;   r;   r=   Ú test_rewrite_MaxMin_as_Piecewises  s(    *>. 
 ÿ
,@. 
 ÿ,rz   c                  C   sú   ddl m} m} | d|di}t| |ƒj|dt| |ƒ |¡ ¡ ksFt‚t| |ƒj|dt| |ƒ |¡ ¡ kspt‚ddlm	} t
dƒD ]p}| |dd	ƒ||dd	ƒi}t| |ƒj|dt| |ƒ |¡ ¡ ksÊt‚t| |ƒj|dt| |ƒ |¡ ¡ ks„t‚q„d S )
Nr   ©r   r   r4   re   )r:   )Úrandinté   r8   r7   )rC   r   r   r   Zevalfr:   rD   r   Zsympy.core.randomr|   Úrange)r   r   Zfixed_test_datar|   rY   Zrandom_test_datar;   r;   r=   Útest_issue_11099†  s"    ÿÿÿÿr   c                  C   s~   ddl m} m}m} t| ||t| |ƒƒt| ||ƒks8t‚t| |t| ||ƒƒt| |ƒksZt‚t| |t| |ƒƒt| |ƒkszt‚d S ©Nr   ©rT   rx   Úc)rC   rT   rx   r‚   r   r   rD   r   r;   r;   r=   Útest_issue_12638˜  s    $"rƒ   c                  C   s>   ddl m} m}m} tt| |ƒt| ||ƒƒt| |ƒks:t‚d S r€   )rC   rT   rx   r‚   r   r   rD   r   r;   r;   r=   Útest_issue_21399ž  s    r„   c               
   C   sŒ  ddl m} m}m}m}m} tdtd|ƒƒdks4t‚tdtd|ƒƒdksLt‚tt||ƒt||ƒƒt|t||ƒƒksvt‚t	tt||ƒt||ƒƒj
ƒt||ƒt||ƒhksªt‚tt||ƒt||ƒ|ƒt|t|t||ƒƒƒksÜt‚tt }}tdƒD ]\}|||||ƒƒ|kst‚||||||||ƒƒƒ|||||||ƒƒƒks@t‚|| }}qît|t||ƒt| ||ƒƒt|t|t|t| |ƒƒƒƒksˆt‚d S )Nr   )ÚvÚwr   r   r   r5   r3   re   )rC   r…   r†   r   r   r   r   r   rD   ÚsetrJ   r~   )r…   r†   r   r   r   ÚAÚBrY   r;   r;   r=   Útest_instantiation_evaluation£  s*    * ÿ
 ÿ

4 ÿrŠ   c                     sˆ   ddl m‰ ddlm‰  ddlm} m}m}m} ‡ ‡fdd„}|t	| |ƒƒ |t
| |ƒƒ |t	| ||ƒƒ |t	t
|| ƒt
||ƒƒƒ d S )Nr   )Úpermutations)ÚAbs)r   r   r   r†   c                    s`   | j }|  ˆ ¡}| tt¡r t‚ˆtt|ƒƒƒD ]*}tt	||ƒƒ}| 
|¡|  
|¡ks0t‚q0d S r9   )Zfree_symbolsrs   Úhasr   r   rD   r~   ÚlenÚdictÚzipZxreplace)rN   ÚfreerT   rY   Zreps©rŒ   r‹   r;   r=   Útest¸  s    
z!test_rewrite_as_Abs.<locals>.test)Ú	itertoolsr‹   Z$sympy.functions.elementary.complexesrŒ   rC   r   r   r   r†   r   r   )r   r   r   r†   r“   r;   r’   r=   Útest_rewrite_as_Abs´  s    r•   c                   C   sô   t tdddtƒdkst‚t tdddtƒdks4t‚t tddddtƒdksPt‚tdddtdtjddkspt‚tdddtdtddƒddks”t‚tdd	ddtdtjddks¶t‚tddd	dd 	t¡dksÔt‚t
d
ddd 	t¡dksðt‚d S )Nr1   F©ÚevaluateTg      @é   r5   re   r3   ri   )Ú
isinstancer   r   rD   r   r   r   rG   r   r   r   r;   r;   r;   r=   Útest_issue_14000Ä  s     $"rš   c                  C   s6   ddl m}  tdƒ}| ||ƒ}|j|jŽ |ks2t‚d S )Nr   )ÚLambdar   )Úsympy.core.functionr›   r	   rE   rJ   rD   )r›   r   Zeqnr;   r;   r=   Útest_issue_6899Ð  s    
r   c                  C   s˜   ddl m} m} tddƒdks"t‚tddƒdks4t‚tddƒdksFt‚tddƒdksXt‚t| d |ƒt| d |ƒksxt‚ttddƒd dƒd	ks”t‚d S )
Nr   r{   r0   re   r3   rf   r4   éýÿÿÿr5   )rC   r   r   r   rD   r{   r;   r;   r=   Útest_RemÖ  s     rŸ   c               	   C   s¾  ddl m}  tddd}tddƒdks*t‚tddƒjdks>t‚td|ƒ|ksPt‚td|ƒjdksdt‚td|ƒdksvt‚td|ƒjdksŠt‚tddd	ddks t‚tddd	djd
ks¸t‚td|d	d|ksÎt‚td|d	djd|fksêt‚td|d	ddkst‚td|d	djd|fks t‚| d	ƒŒ tddƒdks>t‚tddƒjd
ksTt‚td|ƒ|ksht‚td|ƒjd|fks‚t‚td|ƒdks–t‚td|ƒjd|fks°t‚W 5 Q R X d S )Nr   r–   r'   Tr(   r5   re   r;   F)r5   re   )Zsympyr—   r	   r   rD   rJ   r   )r—   r'   r;   r;   r=   Útest_minmax_no_evaluateà  s*    
r    )<r”   r_   Zsympy.core.exprr   rœ   r   Zsympy.core.numbersr   r   r   Zsympy.core.powerr   Zsympy.core.singletonr   rw   r	   Zsympy.externalr
   Z&sympy.functions.elementary.exponentialr   Z#sympy.functions.elementary.integersr   r   Z(sympy.functions.elementary.miscellaneousr   r   r   r   r   r   r   Z(sympy.functions.elementary.trigonometricr   r   Z'sympy.functions.special.delta_functionsr   Zsympy.utilities.lambdifyr   Zsympy.testing.pytestr   r   r   rP   rS   rc   rd   rh   rn   rr   rt   rz   r   rƒ   r„   rŠ   r•   rš   r   rŸ   r    r;   r;   r;   r=   Ú<module>   s@   $}BD

