o
    …º¥gü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©ÚnonnegativeÚnn_Úp©ÚpositiveÚp_Únp)ÚnonpositiveÚnp_Úr©Úrealé   é   éùÿÿÿé   éþÿÿÿé   éè  éd   éœÿÿÿc                      ó   t tˆ ƒtˆ ƒƒ ˆ t¡S ©N)r   r   r   Úsubsr   © ©r   r>   új/var/www/visachat/venv/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@   rA   j   ó    c                      ó
   t tˆ ƒS r<   rD   r>   r?   r>   r@   rA   k   ó   
 c                      s   t tjˆ ƒS r<   )r   r   ÚComplexInfinityr>   r?   r>   r@   rA   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/   rJ   ÚeÚmr>   r?   r@   Útest_Min   sÚ   """. $*(,""4ÿ

rW   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/   r0   r2   r3   r5   r7   r8   r9   r:   c                      r;   r<   )r   r   r   r=   r   r>   r?   r>   r@   rA   ­   rB   ztest_Max.<locals>.<lambda>c                   S   rC   r<   ©r   r   r>   r>   r>   r@   rA   ®   rE   c                      rF   r<   rX   r>   r?   r>   r@   rA   ¯   rG   c                   S   s   t tjdƒS )Nr7   )r   r   rH   r>   r>   r>   r@   rA   °   rI   F)rK   r   r   r   r	   r   r   ÚNegativeInfinityr   r   r   r   r=   rN   r   rO   rP   r   r    rQ   rR   rS   rT   )
r   r   r    r#   r$   r(   r+   r/   rU   rV   r>   r?   r@   Útest_Max‘   sl     , "((,"""" ÿ
ÿ

rZ   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/   Tr0   Úa)r1   Ú	algebraicÚt)r1   ÚtranscendentalÚq)Úrationalr(   )Ú
irrationalr    F)r`   ÚintegerÚi©rb   Úo)ÚoddrU   )ÚevenÚk)Úprimer5   )Úrepeat)r	   r   r   ÚitÚproductÚis_realÚis_algebraicÚis_transcendentalÚis_rationalÚis_irrationalÚ
is_integerÚis_nonintegerÚis_oddÚis_evenÚis_prime)r/   r[   r]   r_   r(   r    rc   re   rU   rh   ÚrealsÚextr   r   r>   r>   r@   Útest_minmax_assumptionsÓ   s\   Íÿry   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   Tr0   )r	   r   r   r   r   r?   r>   r>   r@   Útest_issue_8413  s
   rz   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    Trd   rh   r5   r7   é   éûÿÿÿr3   r2   r6   éÿÿÿÿ)rK   r   r	   r   r   r   r   r   )r   r    rh   r>   r>   r@   Ú	test_root!  s&    0r~   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éøÿÿÿr{   r6   iðÿÿÿr3   r4   r}   r5   g       Àg       Àr   r    )r   r    é   )r   r   r	   r=   r   r   r   )r/   Úr1Úr2Úr3r   r    Úgr>   r>   r@   Útest_real_root=  s$   


 
 r…   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   r5   r{   r}   )	r
   r   r	   r   r   r   r   ÚRuntimeWarningÚarray)r†   r   rJ   r>   r>   r@   Útest_issue_11463T  s   
"ÿr‰   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?   r{   r5   r6   )rK   r   r   Úrewriter   r   r?   r>   r>   r@   Ú test_rewrite_MaxMin_as_Heavisidea  s*    
ÿ ÿÿ"
ÿÿþÿr‹   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 bTr0   zvx vy va)Úsympy.core.symbolrŒ   Ú$sympy.functions.elementary.piecewiser   r   rŠ   r   )
rŒ   r   r   r   r   r[   ÚbÚvxÚ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   r6   r{   )r=   )Úrandinté   r:   r9   )
rK   r   r   r   Úevalfr=   r   Úsympy.core.randomr–   Úrange)r   r   Úfixed_test_datar–   rc   Ú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   ©r[   r   Úc)rK   r[   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ž   )rK   r[   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   r7   r5   r{   )rK   r£   r¤   r   r   r   r   r   ÚsetrQ   rš   )r£   r¤   r   r   r   ÚAÚBrc   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<   )
Úfree_symbolsrŠ   Úhasr   r   rš   ÚlenÚdictÚzipÚxreplace)rU   Úfreer[   rc   Úreps©rª   r©   r>   r@   Útest¸  s   
þz!test_rewrite_as_Abs.<locals>.test)Ú	itertoolsr©   Ú$sympy.functions.elementary.complexesrª   rK   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 )Nr3   F©ÚevaluateTg      @é   r7   r{   r5   r   )
Ú
isinstancer   r   r   r   r   rN   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	   rL   rQ   )r½   r   Ú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•   r2   r{   r5   r|   r6   éýÿÿÿr7   )rK   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)   r7   r{   r>   F)r7   r{   )Úsympyr¹   r	   r   rQ   r   )r¹   r(   r>   r>   r@   Útest_minmax_no_evaluateà  s,   
"úrÄ   )<rµ   rk   Úsympy.core.exprr   r¾   r   Úsympy.core.numbersr   r   r   Úsympy.core.powerr   Úsympy.core.singletonr   rŽ   r	   Úsympy.externalr
   Ú&sympy.functions.elementary.exponentialr   Ú#sympy.functions.elementary.integersr   r   Ú(sympy.functions.elementary.miscellaneousr   r   r   r   r   r   r   Ú(sympy.functions.elementary.trigonometricr   r   Ú'sympy.functions.special.delta_functionsr   Úsympy.utilities.lambdifyr   Úsympy.testing.pytestr   r   r   rW   rZ   ry   rz   r~   r…   r‰   r‹   r”   r   r¡   r¢   r¨   r·   r¼   rÀ   rÂ   rÄ   r>   r>   r>   r@   Ú<module>   sB    $}BD

