U
    ZÊ¹jü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�s�t‚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/bwave/python/venv/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

