o
    GZŽ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sIJ ‚tt t ƒt u sUJ ‚tt |ƒt u s`J ‚t|t ƒt u skJ ‚tt |ƒt u svJ ‚t|t ƒt u sJ ‚tt dƒt u sŒJ ‚td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 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sJ ‚t||ƒ|ks'J ‚t||ƒ|ks1J ‚t|tƒ|ks;J ‚tt|ƒ|ksEJ ‚t||ƒ|ksOJ ‚t|dƒ|ksYJ ‚td|ƒ|kscJ ‚t||ƒ|ksmJ ‚t||ƒ|kswJ ‚t||ƒ|ksJ ‚t||ƒ|ks‹J ‚t|tƒ|ks•J ‚tt|ƒ|ksŸJ ‚td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ƒ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sJ ‚tt|ƒ|ksJ ‚t||ƒ|ks#J ‚t|tƒ|ks-J ‚tt|ƒ|ks7J ‚tttƒtu sAJ ‚t||ƒjtu sLJ ‚t||ƒjtu sWJ ‚t||	ƒjtu sbJ ‚t||ƒjtu smJ ‚tƒ t	j
u svJ ‚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||||ƒ|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sJ ‚tdddˆ ||ƒt|ˆ dƒks J ‚tttˆ ƒtˆ ƒƒs-J ‚ttˆ ƒtˆ ƒƒttˆ ƒtˆ ƒƒksBJ ‚ttˆ ƒtˆ ƒƒ ˆ d¡tdƒksVJ ‚ttˆ ƒtˆ ƒƒ ˆ t	j¡tt	jƒkslJ ‚tt‡ fdd„ƒ ttdd„ ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tdˆ ƒ ˆ ¡tdˆ  ƒksŸJ ‚tˆ dƒ ˆ ¡tdˆ  ƒks°J ‚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 sJ ‚|jdu s"J ‚t||ƒ}|jdu s/J ‚|jdu s7J ‚|jd!u s?J ‚t|||ƒ}|jd u sMJ ‚|jdu sUJ ‚|jd!u s]J ‚t|||
ƒ}|jd u skJ ‚|jd u ssJ ‚|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                      ó   t tˆ ƒtˆ ƒƒ ˆ t¡S ©N)r   r   r   Úsubsr   © ©r   r<   úb/var/www/auris/lib/python3.10/site-packages/sympy/functions/elementary/tests/test_miscellaneous.pyÚ<lambda>i   ó    ztest_Min.<locals>.<lambda>c                   S   ó   t tƒS r:   ©r   r   r<   r<   r<   r>   r?   j   ó    c                      ó
   t tˆ ƒS r:   rB   r<   r=   r<   r>   r?   k   ó   
 c                      s   t tjˆ ƒS r:   )r   r   ÚComplexInfinityr<   r=   r<   r>   r?   l   ó    Ú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-   rH   ÚeÚmr<   r=   r>   Útest_Min   sÚ   """. $*(,""4ÿ

rU   c            
   
      sz  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s7J ‚tƒ tju s?J ‚tˆ ƒˆ ksGJ ‚tˆ | ƒt| ˆ ƒksSJ ‚tˆ | |ƒt|| ˆ ƒksaJ ‚tˆ t| |ƒƒt|| ˆ ƒksqJ ‚tˆ t| t	ƒƒtˆ | ƒks€J ‚t|t	 ||dƒt|dƒksJ ‚t|t	 ||ƒ|ksœJ ‚tdˆ ||t	 tj||dƒ	tdˆ |ƒks²J ‚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s J ‚tt‡ fdd„ƒ ttdd„ ƒ tt‡ fdd„ƒ ttdd„ ƒ t|t	 ||dƒt|dƒksQJ ‚t|t	 ||dƒt|dƒksbJ ‚tdˆ ƒ ˆ ¡tˆ d ƒkssJ ‚tˆ dƒ ˆ ¡tˆ d ƒks„J ‚tˆ d dˆ  dƒ ˆ ¡dˆ  tˆ d tdˆ d ƒ ƒ tˆ tdˆ d ƒ d ƒ ks²J ‚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 sJ ‚t|||ƒ}	|	jd u s+J ‚|	jdu s3J ‚|	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                      r9   r:   )r   r   r   r;   r   r<   r=   r<   r>   r?   ­   r@   ztest_Max.<locals>.<lambda>c                   S   rA   r:   ©r   r   r<   r<   r<   r>   r?   ®   rC   c                      rD   r:   rV   r<   r=   r<   r>   r?   ¯   rE   c                   S   s   t tjdƒS )Nr5   )r   r   rF   r<   r<   r<   r>   r?   °   rG   F)rI   r   r   r   r	   r   r   ÚNegativeInfinityr   r   r   r   r;   rL   r   rM   rN   r   r    rO   rP   rQ   rR   )
r   r   r    r#   r$   r'   r)   r-   rS   rT   r<   r=   r>   Útest_Max‘   sl     , "((,"""" ÿ
ÿ

rX   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 ] \}}|||ƒjsfJ ‚|jru|jru|||ƒjstJ ‚n|jr„|jr„|||ƒ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
sÄJ ‚n|jrÔ|jrÔ|||ƒjsÓJ ‚n
|||ƒj
d u sÞJ ‚|jrí|jrí|||ƒjsìJ ‚n#|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 ‚n#|jdu r:|jdu r:|||ƒjdu s9J ‚n|||ƒjd u sEJ ‚|jrW|jrW|||ƒjsVJ ‚qY|jdu ro|jdu ro|||ƒjdu snJ ‚qY|||ƒjd u szJ ‚qYqOd S )Nr-   Tr.   Úa)r/   Z	algebraicÚt)r/   ZtranscendentalÚq)Úrationalr'   )Z
irrationalr    F)r\   ÚintegerÚi©r]   Úo)ZoddrS   )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-   rY   rZ   r[   r'   r    r^   r`   rS   ra   ZrealsÚextr   r   r<   r<   r>   Útest_minmax_assumptionsÓ   s\   Íÿrh   c                  C   sp   t ddd} tt| ƒ| ƒt| ƒksJ ‚tt| ƒ| ƒ| ksJ ‚tt| ƒ| ƒ| ks)J ‚tt| ƒ| ƒt| ƒks6J ‚d S )Nr   Tr.   )r	   r   r   r   r   r=   r<   r<   r>   Útest_issue_8413  s
   ri   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s&J ‚tdd	ƒdtdd	ƒ ks4J ‚tdd	ƒtdƒks?J ‚tdd
ƒdtddƒ d ksOJ ‚tddƒdksXJ ‚tddƒtdƒt kseJ ‚tddƒdksnJ ‚t| dƒt| ƒksyJ ‚t| dƒ| ks‚J ‚t| d	ƒ| tdd	ƒ ksJ ‚t| d	ƒt| ƒks›J ‚t| d
ƒ| tddƒ ks©J ‚t| |ƒ| d|  ks¶J ‚t| | ƒ| d|  ksÄJ ‚t| ||ƒdd| |  | d|   ksÚJ ‚d S )Nr   r=   r    Tr_   ra   r3   r5   é   éûÿÿÿr1   r0   r4   éÿÿÿÿ)rI   r   r	   r   r   r   r   r   )r   r    ra   r<   r<   r>   Ú	test_root!  s&    0rm   c                  C   sR  t ddƒdks	J ‚t ddƒtddƒksJ ‚tddƒ} t | ƒ| ks"J ‚tddƒ}|d }tddƒ}t || | ƒd| | ks@J ‚t tddƒƒtddƒ ksOJ ‚t d	dƒd
ksXJ ‚tdƒ}tdƒ}t ||ƒ}| dddœ¡dksqJ ‚| dddœ¡dks}J ‚| tddœ¡ttƒks‹J ‚| dddœ¡tdƒks™J ‚| tddœ¡ttƒks§J ‚d S )Néøÿÿÿrj   r4   iðÿÿÿr1   r2   rl   r3   g       Àg       Àr   r    )r   r    é   )r   r   r	   r;   r   r   r   )r-   Úr1Úr2Zr3r   r    Úgr<   r<   r>   Útest_real_root=  s$   


 
 rs   c                  C   s~   t dƒ} | s
tdƒ tdƒ}t|tt||d  ƒdƒdƒ}ttƒ ||  d¡ƒdk s-J ‚W d   ƒ d S 1 s8w   Y  d S )NÚnumpyznumpy not installed.r   r3   rj   rl   )	r
   r   r	   r   r   r   r   ÚRuntimeWarningÚarray)rt   r   rH   r<   r<   r>   Útest_issue_11463T  s   
"ÿrw   c                  C   sŽ  ddl m}  td| ƒ t¡| t| ƒ ksJ ‚td| ƒ t¡| t| d ƒ dt|  d ƒ  ks1J ‚td| d d|  ƒ t¡d|  td|  ƒ t| d ƒ | d t|  d ƒ t| d ƒ  ksaJ ‚td| ƒ t¡| t|  ƒ ksrJ ‚td| ƒ t¡| t|  d ƒ dt| d ƒ  ksJ ‚t| |  dƒ t¡| td|  ƒ t|  d ƒ | td|  ƒ t| d ƒ  dt|  d ƒ t| d ƒ  ksÅJ ‚d S )Nr   r=   rj   r3   r4   )rI   r   r   Úrewriter   r   r=   r<   r<   r>   Ú test_rewrite_MaxMin_as_Heavisidea  s*    
ÿ ÿÿ"
ÿÿþÿry   c            
      C   s.  ddl m}  ddlm} | ddd\}}}}}| dƒ\}}}	t||ƒ |¡||||kf|dfƒks3J ‚t|||ƒ |¡||||k||k@ f|||kf|dfƒksRJ ‚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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sJ ‚d S )Nr   )Úsymbols)Ú	Piecewisez	x y z a bTr.   zvx vy va)Úsympy.core.symbolrz   Z$sympy.functions.elementary.piecewiser{   r   rx   r   )
rz   r{   r   r   r   rY   ÚbZvxZvyÚvar<   r<   r>   Ú test_rewrite_MaxMin_as_Piecewises  s    *>."
ÿ*>."
ÿ*Dr   c                  C   sú   ddl m} m} | d|di}t| |ƒj|dt| |ƒ |¡ ¡ ks#J ‚t| |ƒj|dt| |ƒ |¡ ¡ ks8J ‚ddlm} t	dƒD ]8}| |dd	ƒ||dd	ƒi}t| |ƒj|dt| |ƒ |¡ ¡ kseJ ‚t| |ƒj|dt| |ƒ |¡ ¡ kszJ ‚qBd S )
Nr   ©r   r   r4   rj   )r;   )Úrandinté   r8   r7   )
rI   r   r   r   Zevalfr;   r   Zsympy.core.randomr   Úrange)r   r   Zfixed_test_datar   r^   Zrandom_test_datar<   r<   r>   Útest_issue_11099†  s$   ÿÿÿ
ÿür„   c                  C   s~   ddl m} m}m} t| ||t| |ƒƒt| ||ƒksJ ‚t| |t| ||ƒƒt| |ƒks-J ‚t| |t| |ƒƒt| |ƒks=J ‚d S ©Nr   ©rY   r}   Úc)rI   rY   r}   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…   )rI   rY   r}   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sJ ‚tdtd|ƒƒdks&J ‚tt||ƒt||ƒƒt|t||ƒƒks;J ‚ttt||ƒt||ƒƒj	ƒt||ƒt||ƒhksUJ ‚tt||ƒt||ƒ|ƒt|t|t||ƒƒƒksnJ ‚tt}}t
dƒD ],}|||||ƒƒ|ks…J ‚||||||||ƒƒƒ|||||||ƒƒƒksžJ ‚||}}qwt|t||ƒt| ||ƒƒt|t|t|t| |ƒƒƒƒksÁJ ‚d S )Nr   )ÚvÚwr   r   r   r5   r3   rj   )rI   rŠ   r‹   r   r   r   r   r   ÚsetrO   rƒ   )rŠ   r‹   r   r   r   ÚAÚBr^   r<   r<   r>   Útest_instantiation_evaluation£  s$   *
ÿ
ÿ
2ÿ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s-J ‚qd S r:   )
Zfree_symbolsrx   Úhasr   r   rƒ   ÚlenÚdictÚzipZxreplace)rS   ÚfreerY   r^   Zreps©r‘   r   r<   r>   Útest¸  s   
þz!test_rewrite_as_Abs.<locals>.test)Ú	itertoolsr   Z$sympy.functions.elementary.complexesr‘   rI   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sJ ‚t tddddtƒdks(J ‚tdddtdtjddks8J ‚tdddtdtddƒddksJJ ‚tdd	ddtdtjddks[J ‚tddd	dd t¡dksjJ ‚t	d
ddd t¡dksxJ ‚d S )Nr1   F©ÚevaluateTg      @é   r5   rj   r3   rn   )
Ú
isinstancer   r   r   r   r   rL   r   r’   r   r<   r<   r<   r>   Útest_issue_14000Ä  s    $" rŸ   c                  C   s6   ddl m}  tdƒ}| ||ƒ}|j|jŽ |ksJ ‚d S )Nr   )ÚLambdar   )Úsympy.core.functionr    r	   rJ   rO   )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sJ ‚tddƒdks#J ‚tddƒdks,J ‚t| d |ƒt| d |ƒks<J ‚ttddƒd dƒd	ksJJ ‚d S )
Nr   r€   r0   rj   r3   rk   r4   éýÿÿÿr5   )rI   r   r   r   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J ‚tddƒjdksJ ‚td|ƒ|ks(J ‚td|ƒjdks2J ‚td|ƒdks;J ‚td|ƒjdksEJ ‚tddd	ddksPJ ‚tddd	djd
ks\J ‚td|d	d|ksgJ ‚td|d	djd|fksuJ ‚td|d	ddks€J ‚td|d	djd|fksŽJ ‚| d	ƒF tddƒdksœJ ‚tddƒjd
ks¦J ‚td|ƒ|ks¯J ‚td|ƒjd|fks»J ‚td|ƒdksÄJ ‚td|ƒjd|fksÐJ ‚W d   ƒ d S 1 sÛw   Y  d S )Nr   r›   r'   Tr(   r5   rj   r<   F)r5   rj   )Zsympyrœ   r	   r   rO   r   )rœ   r'   r<   r<   r>   Útest_minmax_no_evaluateà  s,   
"úr¥   )<r™   rd   Zsympy.core.exprr   r¡   r   Zsympy.core.numbersr   r   r   Zsympy.core.powerr   Zsympy.core.singletonr   r|   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   rU   rX   rh   ri   rm   rs   rw   ry   r   r„   rˆ   r‰   r   rš   rŸ   r¢   r¤   r¥   r<   r<   r<   r>   Ú<module>   sB    $}BD

