a
    kº”hü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’J ‚tt t ƒt u sªJ ‚tt |ƒt u sÀJ ‚t|t ƒt u sÖJ ‚tt |ƒt u sìJ ‚t|t ƒt u sJ ‚tt dƒt u sJ ‚tdt ƒt u s4J ‚tt |ƒt u sLJ ‚t|t ƒt u sdJ ‚tt |ƒt u s|J ‚t|t ƒt u s”J ‚tt tƒt u s¬J ‚ttt ƒt u sÄJ ‚t||ƒ|ksØJ ‚tt||ƒsêJ ‚t||ƒt||ƒksJ ‚t|dƒ|ksJ ‚td|ƒ|ks,J ‚t||ƒ|ks@J ‚t||ƒ|ksTJ ‚t||ƒ|kshJ ‚t||ƒ|ks|J ‚t|tƒ|ksJ ‚tt|ƒ|ks¤J ‚t||ƒ|ks¸J ‚t|dƒ|ksÌJ ‚td|ƒ|ksàJ ‚t||ƒ|ksôJ ‚t||ƒ|ksJ ‚t||ƒ|ksJ ‚t||ƒ|ks0J ‚t|tƒ|ksDJ ‚tt|ƒ|ksXJ ‚tddƒdkslJ ‚td|ƒdks€J ‚t|dƒdks”J ‚td|ƒdks¨J ‚t|dƒdks¼J ‚tdtƒdksÐJ ‚ttdƒdksäJ ‚t||ƒ|ksøJ ‚tt||ƒs
J ‚t||ƒt||ƒks$J ‚t|tƒ|ks8J ‚tt|ƒ|ksLJ ‚t||ƒ|ks`J ‚t|tƒ|kstJ ‚tt|ƒ|ksˆJ ‚tttƒtu sœJ ‚t||ƒjtu s²J ‚t||ƒjtu sÈJ ‚t||	ƒjtu sÞJ ‚t||ƒjtu sôJ ‚tƒ t	j
u sJ ‚tˆ ƒˆ ksJ ‚tˆ | ƒt| ˆ ƒks2J ‚tˆ | |ƒt|| ˆ ƒksPJ ‚tˆ t| |ƒƒt|| ˆ ƒksrJ ‚tˆ t| t ƒƒtˆ | ƒks”J ‚t|t||||ƒ|ks°J ‚t|||ƒ|ksÆJ ‚t|td||dƒt|dƒksèJ ‚tdˆ ||t||dddƒ
tdˆ ||ƒksJ ‚tdˆ d| ƒtdˆ | ƒks6J ‚tdddˆ ||ƒt|ˆ dƒksZJ ‚tttˆ ƒtˆ ƒƒstJ ‚ttˆ ƒtˆ ƒƒttˆ ƒtˆ ƒƒksžJ ‚ttˆ ƒtˆ ƒƒ ˆ d¡tdƒksÆJ ‚ttˆ ƒtˆ ƒƒ ˆ t	j¡tt	jƒksòJ ‚tt‡ fdd„ƒ ttdd„ ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tdˆ ƒ ˆ ¡tdˆ  ƒksXJ ‚tˆ dƒ ˆ ¡tdˆ  ƒkszJ ‚tdˆ  ddˆ   ƒ ˆ ¡tˆ tddˆ  d ƒ ƒ dtdˆ  tdˆ  ƒ d ƒ  ksØJ ‚td ƒ}tddt|dƒdƒ ƒsþJ ‚tdˆ ƒ}| ¡ jdˆ fks J ‚t||||
ƒ}|jd!u s>J ‚|jd!u sNJ ‚|jdu s^J ‚t||ƒ}|jdu sxJ ‚|jdu sˆJ ‚|jd!u s˜J ‚t|||ƒ}|jd u s´J ‚|jdu sÄJ ‚|jd!u sÔJ ‚t|||
ƒ}|jd u sðJ ‚|jd u 	s J ‚|jd u 	sJ ‚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;   úa/var/www/auris/lib/python3.9/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   r   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ÿ

rO   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snJ ‚tƒ tju s~J ‚tˆ ƒˆ ksŽJ ‚tˆ | ƒt| ˆ ƒks¦J ‚tˆ | |ƒt|| ˆ ƒksÂJ ‚tˆ t| |ƒƒt|| ˆ ƒksâJ ‚tˆ t| t	ƒƒtˆ | ƒksJ ‚t|t	 ||dƒt|dƒks$J ‚t|t	 ||ƒ|ks>J ‚tdˆ ||t	 tj||dƒ	tdˆ |ƒkslJ ‚tdˆ d| ƒtdˆ | ƒksŒJ ‚t||d |d ƒd| ks®J ‚tdddˆ ||ƒt|ˆ dƒksÒJ ‚tt
ˆ ƒtˆ ƒƒttˆ ƒt
ˆ ƒƒksüJ ‚tt
ˆ ƒtˆ ƒƒ ˆ d¡tdƒks$J ‚tt
ˆ ƒtˆ ƒƒ ˆ tj¡t
tjƒksPJ ‚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²J ‚t|t	 ||dƒt|dƒksÔJ ‚tdˆ ƒ ˆ ¡tˆ d ƒksöJ ‚tˆ dƒ ˆ ¡tˆ d ƒksJ ‚tˆ d dˆ  dƒ ˆ ¡dˆ  tˆ d tdˆ d ƒ ƒ tˆ tdˆ d ƒ d ƒ kstJ ‚tdˆ ƒ}| ¡ jdˆ fks–J ‚t||||ƒ}	|	jdu s´J ‚|	jdu sÄJ ‚|	jdu sÔJ ‚t||ƒ}	|	jdu sîJ ‚|	jdu sþJ ‚|	jdu sJ ‚t|||ƒ}	|	jd u s*J ‚|	jd u s:J ‚|	jd u sJJ ‚t|||ƒ}	|	jd u sfJ ‚|	jdu svJ ‚|	jdu s†J ‚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   rP   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   r   ÚNegativeInfinityr   r   r   r   r:   rF   r   rG   rH   r   r    rI   rJ   rK   rL   )
r   r   r    r#   r$   r'   r)   r-   rM   rN   r;   r<   r=   Útest_Max‘   sl      ". "$*(,"""" ÿÿ


rR   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ÌJ ‚|jrê|jrê|||ƒjsèJ ‚n:|jr|jr|||ƒjs$J ‚n|||ƒjd u s$J ‚|jrH|jrH|||ƒjs‚J ‚n:|j	rl|j	rl|||ƒj	s‚J ‚n|||ƒjd u s‚J ‚|j
r¦|j
r¦|||ƒj
sàJ ‚n:|jrÊ|jrÊ|||ƒjsàJ ‚n|||ƒj
d u sàJ ‚|jr|jr|||ƒjsJJ ‚nF|jdu r4|jdu r4|||ƒjdu sJJ ‚n|||ƒjd u sJJ ‚|jrn|jrn|||ƒjs´J ‚nF|jdu rž|jdu rž|||ƒjdu s´J ‚n|||ƒjd u s´J ‚|jrØ|jrØ|||ƒjsJ ‚q²|jdu r|jdu r|||ƒjdu sJ ‚q²|||ƒjd u s²J ‚q²qžd S )Nr-   Tr.   Úa)r/   Z	algebraicÚt)r/   ZtranscendentalÚq)Úrationalr'   )Z
irrationalr    F)rV   ÚintegerÚi©rW   Úo)ZoddrM   )ZevenÚk)Úprimer3   )Úrepeat)r	   r   r   ÚitÚproductZis_realZis_algebraicZis_transcendentalZis_rationalZis_irrationalÚ
is_integerZis_nonintegerZis_oddZis_evenZis_prime)r-   rS   rT   rU   r'   r    rX   rZ   rM   r[   ZrealsÚextr   r   r;   r;   r=   Útest_minmax_assumptionsÓ   sX    rb   c                  C   sp   t ddd} tt| ƒ| ƒt| ƒks&J ‚tt| ƒ| ƒ| ks<J ‚tt| ƒ| ƒ| ksRJ ‚tt| ƒ| ƒt| ƒkslJ ‚d S )Nr   Tr.   )r	   r   r   r   r   r<   r;   r;   r=   Útest_issue_8413  s
    rc   c                  C   sÆ  ddl m}  tddd}tddd}tddƒtdƒks:J ‚tddƒdksLJ ‚tdd	ƒdtdd	ƒ kshJ ‚tdd	ƒtdƒks~J ‚tdd
ƒdtddƒ d ksžJ ‚tddƒdks°J ‚tddƒtdƒt ksÊJ ‚tddƒdksÜJ ‚t| dƒt| ƒksòJ ‚t| dƒ| ksJ ‚t| d	ƒ| tdd	ƒ ks$J ‚t| d	ƒt| ƒks<J ‚t| d
ƒ| tddƒ ksZJ ‚t| |ƒ| d|  ksvJ ‚t| | ƒ| d|  ks”J ‚t| ||ƒdd| |  | d|   ksÂJ ‚d S )Nr   r<   r    TrY   r[   r3   r5   é   éûÿÿÿr1   r0   r4   éÿÿÿÿ)rC   r   r	   r   r   r   r   r   )r   r    r[   r;   r;   r=   Ú	test_root!  s&     rg   c                  C   sX  t ddƒdksJ ‚t ddƒtddƒks*J ‚tddƒ} t | ƒ| ksDJ ‚tddƒ}|d }tddƒ}t || | ƒd| | ks€J ‚t tddƒƒtddƒ ksžJ ‚t d	dƒd
ks°J ‚tdƒ}tdƒ}t ||ƒ}| dddœ¡dksâJ ‚| dddœ¡dksúJ ‚| tddœ¡ttƒksJ ‚| dddœ¡tdƒks6J ‚| tddœ¡ttƒksTJ ‚d S )Néøÿÿÿrd   r4   iðÿÿÿr1   r2   rf   r3   g       Àg       Àr   r    )r   r    é   )r   r   r	   r:   r   r   r   )r-   Zr1Zr2Zr3r   r    Úgr;   r;   r=   Útest_real_root=  s$    


 
rk   c                  C   s|   t dƒ} | stdƒ tdƒ}t|tt||d  ƒdƒdƒ}ttƒ& ||  d¡ƒdk sZJ ‚W d   ƒ n1 sn0    Y  d S )NÚnumpyznumpy not installed.r   r3   rd   rf   )	r
   r   r	   r   r   r   r   ÚRuntimeWarningÚarray)rl   r   rB   r;   r;   r=   Útest_issue_11463T  s    
ro   c                  C   s’  ddl m}  td| ƒ t¡| t| ƒ ks,J ‚td| ƒ t¡| t| d ƒ dt|  d ƒ  ksbJ ‚td| d d|  ƒ t¡d|  td|  ƒ t| d ƒ | d t|  d ƒ t| d ƒ  ksÂJ ‚td| ƒ t¡| t|  ƒ ksäJ ‚td| ƒ t¡| t|  d ƒ dt| d ƒ  ksJ ‚t| |  dƒ t¡| td|  ƒ t|  d ƒ | td|  ƒ t| d ƒ  dt|  d ƒ t| d ƒ  ksŽJ ‚d S )Nr   r<   rd   r3   r4   )rC   r   r   Úrewriter   r   r<   r;   r;   r=   Ú test_rewrite_MaxMin_as_Heavisidea  s*     ÿ
 ÿÿ"ÿÿþÿrq   c            
      C   s6  ddl m}  ddlm} | ddd\}}}}}| dƒ\}}}	t||ƒ |¡||||kf|dfƒksfJ ‚t|||ƒ |¡||||k||k@ f|||kf|dfƒks¤J ‚t||||ƒ |¡||||k||k@ ||k@ f|||k||k@ f|||kf|dfƒksþJ ‚t||ƒ |¡||||kf|dfƒks*J ‚t|||ƒ |¡||||k||k@ f|||kf|dfƒksjJ ‚t||||ƒ |¡||||k||k@ ||k@ f|||k||k@ f|||kf|dfƒksÆJ ‚t||ƒ |¡||||kf|dfƒksòJ ‚t|	||ƒ |¡||	|	|k|	|k@ f|||kf|dfƒks2J ‚d S )Nr   )Úsymbols)Ú	Piecewisez	x y z a bTr.   zvx vy va)Úsympy.core.symbolrr   Z$sympy.functions.elementary.piecewisers   r   rp   r   )
rr   rs   r   r   r   rS   ÚbZvxZvyÚvar;   r;   r=   Ú test_rewrite_MaxMin_as_Piecewises  s     *>."ÿ
,@."ÿ,rw   c                  C   sú   ddl m} m} | d|di}t| |ƒj|dt| |ƒ |¡ ¡ ksFJ ‚t| |ƒj|dt| |ƒ |¡ ¡ kspJ ‚ddlm} t	dƒD ]p}| |dd	ƒ||dd	ƒi}t| |ƒj|dt| |ƒ |¡ ¡ ksÊJ ‚t| |ƒj|dt| |ƒ |¡ ¡ ks„J ‚q„d S )
Nr   ©r   r   r4   rd   )r:   )Úrandinté   r8   r7   )
rC   r   r   r   Zevalfr:   r   Zsympy.core.randomry   Úrange)r   r   Zfixed_test_datary   rX   Zrandom_test_datar;   r;   r=   Útest_issue_11099†  s"    ÿÿÿÿr|   c                  C   s~   ddl m} m}m} t| ||t| |ƒƒt| ||ƒks8J ‚t| |t| ||ƒƒt| |ƒksZJ ‚t| |t| |ƒƒt| |ƒkszJ ‚d S ©Nr   ©rS   ru   Úc)rC   rS   ru   r   r   r   r~   r;   r;   r=   Útest_issue_12638˜  s    $"r€   c                  C   s>   ddl m} m}m} tt| |ƒt| ||ƒƒt| |ƒks:J ‚d S r}   )rC   rS   ru   r   r   r   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s4J ‚tdtd|ƒƒdksLJ ‚tt||ƒt||ƒƒt|t||ƒƒksvJ ‚ttt||ƒt||ƒƒj	ƒt||ƒt||ƒhksªJ ‚tt||ƒt||ƒ|ƒt|t|t||ƒƒƒksÜJ ‚tt }}t
dƒD ]\}|||||ƒƒ|ksJ ‚||||||||ƒƒƒ|||||||ƒƒƒks@J ‚|| }}qît|t||ƒt| ||ƒƒt|t|t|t| |ƒƒƒƒksˆJ ‚d S )Nr   )ÚvÚwr   r   r   r5   r3   rd   )rC   r‚   rƒ   r   r   r   r   r   ÚsetrI   r{   )r‚   rƒ   r   r   r   ÚAÚBrX   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 J ‚ˆtt|ƒƒƒD ]*}tt||ƒƒ}| 	|¡|  	|¡ks0J ‚q0d S r9   )
Zfree_symbolsrp   Úhasr   r   r{   ÚlenÚdictÚzipZxreplace)rM   ÚfreerS   rX   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J ‚t tdddtƒdks4J ‚t tddddtƒdksPJ ‚tdddtdtjddkspJ ‚tdddtdtddƒddks”J ‚tdd	ddtdtjddks¶J ‚tddd	dd t¡dksÔJ ‚t	d
ddd t¡dksðJ ‚d S )Nr1   F©ÚevaluateTg      @é   r5   rd   r3   rh   )
Ú
isinstancer   r   r   r   r   rF   r   rŠ   r   r;   r;   r;   r=   Útest_issue_14000Ä  s     $"r—   c                  C   s6   ddl m}  tdƒ}| ||ƒ}|j|jŽ |ks2J ‚d S )Nr   )ÚLambdar   )Úsympy.core.functionr˜   r	   rD   rI   )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"J ‚tddƒdks4J ‚tddƒdksFJ ‚tddƒdksXJ ‚t| d |ƒt| d |ƒksxJ ‚ttddƒd dƒd	ks”J ‚d S )
Nr   rx   r0   rd   r3   re   r4   éýÿÿÿr5   )rC   r   r   r   rx   r;   r;   r=   Útest_RemÖ  s     rœ   c                  C   sÔ  ddl m}  tddd}tddƒdks*J ‚tddƒjdks>J ‚td|ƒ|ksPJ ‚td|ƒjdksdJ ‚td|ƒdksvJ ‚td|ƒjdksŠJ ‚tddd	ddks J ‚tddd	djd
ks¸J ‚td|d	d|ksÎJ ‚td|d	djd|fksêJ ‚td|d	ddksJ ‚td|d	djd|fks J ‚| d	ƒ– tddƒdks>J ‚tddƒjd
ksTJ ‚td|ƒ|kshJ ‚td|ƒjd|fks‚J ‚td|ƒdks–J ‚td|ƒjd|fks°J ‚W d   ƒ n1 sÆ0    Y  d S )Nr   r“   r'   Tr(   r5   rd   r;   F)r5   rd   )Zsympyr”   r	   r   rI   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   rt   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   rO   rR   rb   rc   rg   rk   ro   rq   rw   r|   r€   r   r‡   r’   r—   rš   rœ   r   r;   r;   r;   r=   Ú<module>   s@   $}BD

