a
    kº”hà„  ã                   @   s°  d dl mZmZmZmZmZ d dlmZmZm	Z	m
Z
mZmZmZ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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(m)Z)m*Z*m+Z+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z< d dl=m>Z> d dl?m@Z@ d dlAmBZB d dl mCZC d dlDmEZE d dlFmGZGmHZHmIZI dd„ ZJdd„ ZKdd„ ZLdd„ ZMd d!„ ZNeGd"d#„ ƒZOd$d%„ ZPd&d'„ ZQd(d)„ ZRd*d+„ ZSd,d-„ ZTd.d/„ ZUd0d1„ ZVd2d3„ ZWd4d5„ ZXd6d7„ ZYd8d9„ ZZd:d;„ Z[eId<d=„ ƒZ\d>d?„ Z]d@dA„ Z^dBdC„ Z_dDdE„ Z`dFdG„ ZadHdI„ ZbdJdK„ ZceGdLdM„ ƒZddNdO„ ZeeGdPdQ„ ƒZfdRdS„ ZgdTdU„ ZhdVdW„ ZidXdY„ ZjeIdZd[„ ƒZkd\S )]é    )Ú
DerivativeÚFunctionÚLambdaÚexpandÚ	PoleError)ÚEÚIÚRationalÚcompÚnanÚooÚpiÚzoo)ÚEq)ÚS)ÚSymbolÚsymbols)ÚAbsÚadjointÚargÚ	conjugateÚimÚreÚsignÚ	transpose)ÚexpÚ	exp_polarÚlog)Úsqrt)Ú	Piecewise)ÚacosÚatanÚatan2ÚcosÚsin)Úsinh)Ú
DiracDeltaÚ	Heaviside)ÚIntegral)ÚMatrix)ÚFunctionMatrix)ÚMatrixSymbol)ÚImmutableMatrixÚImmutableSparseMatrix)ÚSparseMatrix)ÚInterval)Ú	unchanged)ÚArgumentIndexError)ÚOrder)ÚXFAILÚraisesÚ_both_exp_powc                 C   s   t |  ¡ | ¡ dƒS )z7Check whether two complex numbers are numerically closegíµ ÷Æ°>)r
   Ún)ÚaÚb© r9   ú]/var/www/auris/lib/python3.9/site-packages/sympy/functions/elementary/tests/test_complexes.pyÚN_equals   s    r;   c                  C   s  t dƒ\} }t ddd\}}tddd}tddd}ttƒtu sDJ ‚ttƒtu sTJ ‚tt ƒt u shJ ‚tdƒdksxJ ‚td	ƒd	ksˆJ ‚td
ƒd
ks˜J ‚ttƒtks¨J ‚tt ƒt ks¼J ‚tt| ƒsÊJ ‚t| t ƒt| ƒ ksäJ ‚t|t ƒdksøJ ‚t|ƒ|ks
J ‚t|t ƒt| ks$J ‚t|ƒdks6J ‚t| | ƒt| ƒt|ƒ ksXJ ‚t| | ƒt| ƒ| ksvJ ‚tt| ƒƒt| ƒksJ ‚tdt ƒdks¦J ‚t| t ƒt| ƒksÀJ ‚t| |t  ƒt| ƒt|ƒ ksæJ ‚t| |t  ƒt| ƒksJ ‚tt	dt ƒƒt	dƒks"J ‚tdt d ƒj
dddksDJ ‚tt| ƒƒt| ƒks^J ‚tt| ƒƒt| ƒksxJ ‚t| ƒ ¡ t| ƒdfks–J ‚t|| |  ƒ |¡t||  ƒks¾J ‚t|| |  ƒ |¡t| t| ƒ ksêJ ‚tt||t  ƒƒ|d |d  td	dƒ tt||ƒd ƒ ks0J ‚t|d|t   ƒd| ksRJ ‚td	t||t  ƒ d ƒ|d |d  td	dƒ tt||ƒd ƒ d tj ksªJ ‚t| ƒ t¡| tjt| ƒ  ksÐJ ‚| t|ƒ  tt¡| | tjt|ƒ  ks J ‚tddd}tddd}tdƒ} t|ƒjs0J ‚t| ƒjd u sDJ ‚t|ƒjdu sXJ ‚ttjƒtju snJ ‚t dƒ\}}}	td||ƒ}
t|
ƒtj|
t|
ƒ  ks¨J ‚td	dt  dgddt ggƒ}
t|
ƒtd	dgddggƒksêJ ‚td	dt  ddt  gddt ggƒ}
t|
ƒtd	dgddggƒks4J ‚tdd„ tdƒD ƒƒ}t|ƒtg d¢g d¢g d¢g d¢g d¢gƒ t d¡ksˆJ ‚t|ƒtg d ¢g d ¢g d ¢g d ¢g d ¢gƒ t d¡ksÆJ ‚tddt ||f||t  ƒƒ}t|ƒtg d!¢g d"¢g d#¢gƒksJ ‚d S )$Núx,yúa,bT©ÚrealÚrÚi©Ú	imaginaryr   é   éÿÿÿÿé   ©Úcomplexé   é   r7   ©Z	algebraicÚt©ZtranscendentalÚxFún m lÚAéýÿÿÿc                    s"   g | ]‰ ‡ fd d„t dƒD ƒ‘qS )c                    s   g | ]}d ˆ  |t   ‘qS )rF   ©r   ©Ú.0rA   ©Újr9   r:   Ú
<listcomp>n   ó    z&test_re.<locals>.<listcomp>.<listcomp>é   ©Úrange)rT   r9   rU   r:   rW   n   rX   ztest_re.<locals>.<listcomp>rY   )r   r   r   r   r   )rF   rF   rF   rF   rF   )rJ   rJ   rJ   rJ   rJ   )é   r\   r\   r\   r\   )é   r]   r]   r]   r]   )r   rD   rF   rI   rJ   )r   r   r   )rD   rD   rD   )rF   rF   rF   )!r   r   r   r   r   r   r0   r   r   r   r   r   Úas_real_imagÚdiffr   r	   r#   r"   r   ÚHalfÚrewriteÚImaginaryUnitÚis_algebraicÚComplexInfinityÚNaNr+   r)   r,   r.   r[   Úzerosr*   r   )rN   Úyr7   r8   r@   rA   rL   r6   ÚmÚlrP   ÚXr9   r9   r:   Útest_re   s˜    "&"(,ÿ*ÿ
"4ÿ
&0  "("üü
üü
rk   c                  C   s  t dƒ\} }t ddd\}}tddd}tddd}ttƒtu sDJ ‚ttt ƒtu sXJ ‚tt t ƒt u spJ ‚tdƒdks€J ‚td	ƒdksJ ‚td
ƒdks J ‚ttt ƒtks´J ‚tt t ƒt ksÌJ ‚tt| ƒsÚJ ‚t| t ƒt| ƒksòJ ‚t|t ƒ|ksJ ‚t|ƒdksJ ‚t|t ƒdks0J ‚t|ƒt | ksHJ ‚t| | ƒt| ƒt|ƒ ksjJ ‚t| | ƒt| ƒks„J ‚t| |t  ƒt| ƒ| ks¦J ‚tt| ƒt ƒt| ƒksÄJ ‚tdt ƒd	ksÚJ ‚t| t ƒt| ƒd	 ksøJ ‚t| |t  ƒt| ƒt|ƒ ksJ ‚t| |t  ƒt| ƒ| ks@J ‚tt	dt ƒƒt
d ks^J ‚tdt d ƒjdddks€J ‚tt| ƒƒt| ƒ ksœJ ‚tt| ƒƒt| ƒks¶J ‚t| ƒ ¡ t| ƒdfksÔJ ‚t|| |  ƒ |¡t||  ƒksüJ ‚t|| |  ƒ |¡t t||  ƒ ks*J ‚tt||t  ƒƒ|d |d  td	dƒ tt||ƒd ƒ kspJ ‚t|d|t   ƒ|| ks’J ‚td	t||t  ƒ d ƒ|d |d  td	dƒ tt||ƒd ƒ d ksäJ ‚t| ƒ t¡tj | t| ƒ  ksJ ‚| t|ƒ  tt¡| tj|t|ƒ   ks<J ‚tddd}tddd}tdƒ} t|ƒjslJ ‚t| ƒjd u s€J ‚t|ƒjdu s”J ‚ttjƒtju sªJ ‚t dƒ\}}}	td||ƒ}
t|
ƒtjdt  |
t|
ƒ  ksìJ ‚td	dt  dgddt ggƒ}
t|
ƒtddgddggƒks.J ‚td	dt  ddt  gddt ggƒ}
t|
ƒtddgddggƒksxJ ‚tdd„ tdƒD ƒƒ}tdd„ tdƒD ƒƒ}t|ƒ  ¡ |ksºJ ‚t!ddt"||f||t  ƒƒ}t|ƒtg d¢g d¢g d¢gƒks J ‚d S )Nr<   r=   Tr>   r@   rA   rB   r   rD   rE   rF   rG   rJ   r7   rK   rL   rM   rN   FrO   rP   rQ   rI   éþÿÿÿc                 S   s   g | ]}d d„ t dƒD ƒ‘qS )c                 S   s   g | ]}|t  | ‘qS r9   rR   rS   r9   r9   r:   rW   Ñ   rX   z&test_im.<locals>.<listcomp>.<listcomp>rY   rZ   rS   r9   r9   r:   rW   Ñ   rX   ztest_im.<locals>.<listcomp>rY   c                 S   s   g | ]}t td ƒƒ‘qS )rY   )Úlistr[   rS   r9   r9   r:   rW   Ò   rX   )r   rD   rF   )#r   r   r   r   r   r   r   r0   r   r   r   r   r   r^   r_   r   r	   r$   r"   ra   r   rb   rc   rd   re   r+   ZOner)   r,   r-   r[   r.   Zas_immutabler*   r   )rN   rg   r7   r8   r@   rA   rL   r6   rh   ri   rP   rj   ÚYr9   r9   r:   Útest_im   s‚    ""&""(.ÿ*ÿ
".ÿ
(0( "("ÿro   c            
      C   s´	  t dƒdksJ ‚t dƒdks J ‚t dt ƒtks4J ‚t dt ƒt ksJJ ‚t dƒdksZJ ‚t ddd	 ¡ dksrJ ‚t tdd	 ¡ dksŠJ ‚t tƒtu sšJ ‚t d
d
t  ƒ ¡ td
ƒd
d
t   d ksÊJ ‚t d
dt  ƒ ¡ t d
dt  ƒksòJ ‚t d
d
t  ƒ ¡ t dt ƒksJ ‚t ttdtdƒ ƒƒƒdks:J ‚t tdtdƒ ƒƒtksXJ ‚tdƒ} t | ƒj	du stJ ‚t | ƒj
du sˆJ ‚t | ƒjd u sœJ ‚t | ƒjd u s°J ‚t | ƒjd u sÄJ ‚t | ƒjd u sØJ ‚t | ƒ ¡ t | ƒksòJ ‚t d|  ƒt | ƒksJ ‚t d
|  ƒt | ƒks&J ‚t t|  ƒtt | ƒ ksDJ ‚t dt |  ƒt t | ƒ kshJ ‚t t| ƒƒtt | ƒƒks†J ‚tddd}tddd}tddd}t d
| |  ƒt | ƒksÈJ ‚t ||  ƒt | ƒ ksäJ ‚t || |  ƒt | ƒksJ ‚tddd} t | ƒjdu s"J ‚t | ƒjdu s6J ‚t | ƒjdu sJJ ‚t | ƒjdu s^J ‚t | ƒ | ¡d
tt |  ƒ ks„J ‚t | ƒ ¡ | t| ƒ ks¢J ‚tt | ƒƒt | ƒ ks¾J ‚tddd} t | ƒjdu sÞJ ‚t | ƒjdu sòJ ‚t | ƒjdu sJ ‚t | ƒjd u sJ ‚t | ƒ | ¡d
t| ƒ ks:J ‚t | ƒ ¡ t | ƒksTJ ‚tt | ƒƒt | ƒksnJ ‚tddd} t | ƒjdu sŽJ ‚t | ƒjdu s¢J ‚t | ƒjdu s¶J ‚t | ƒjdu sÊJ ‚t | ƒ ¡ | t| ƒ ksèJ ‚t t| ƒƒdksþJ ‚tt | ƒƒdksJ ‚tddd} t | ƒjdu s4J ‚t | ƒjdu sHJ ‚t | ƒjdu s\J ‚t | ƒjdu spJ ‚t | ƒ ¡ | t| ƒ ksŽJ ‚t t| ƒƒdks¤J ‚tt | ƒƒdksºJ ‚d} t | ƒjdu sÒJ ‚t | ƒjdu sæJ ‚t | ƒjdu súJ ‚t | ƒjdu sJ ‚t | ƒ ¡ dks$J ‚t t| ƒƒdks:J ‚tt | ƒƒdksPJ ‚tdddd}t |ƒjdu srJ ‚t |ƒjdu s†J ‚t |ƒjdu sšJ ‚t |ƒjdu s®J ‚t |ƒd
 dksÄJ ‚t |ƒd jt |ƒdfksäJ ‚t tdddƒjsüJ ‚t tdddƒjd u sJ ‚t tdddƒjd u s4J ‚t tdddƒjsLJ ‚t tdddƒjd u shJ ‚t tdddƒjd u s„J ‚t tddddƒjd u s¢J ‚tdddtdƒ } }tdƒ}t | ƒ t¡td| dkfd| dk fdƒksðJ ‚t |ƒ t¡t |ƒksJ ‚t | ƒ t¡d
t| tdƒd
 d d ks<J ‚t |ƒ t¡t |ƒksXJ ‚t |ƒ t¡tdt|dƒf|t|ƒ dfƒksŒJ ‚t ||ƒƒ t¡tdt||ƒdƒf||ƒt||ƒƒ dfƒksÐJ ‚t ttt ƒt ƒtju sðJ ‚td d!tdƒ  ƒ tdtdƒ ƒ tddtdƒ  ƒ }t |ƒjt u 	sLt |ƒdk	sLJ ‚dtd
ƒ d
tdƒ  d"td!ƒ  }t |d ƒt!ddƒ }|| }	t |	ƒjt u 	s°t |	ƒdk	s°J ‚d S )#Ng333333ó?rD   g333333ó¿rE   rI   rQ   r   F)ÚevaluaterF   rJ   rN   Trl   Úp©Zpositiver6   ©Únegativerh   rB   r>   )ÚnonzeroÚnz)ru   Úinteger)Únonnegative)Únonpositive)r?   Úzerorg   Úf)r   T)ZH0é
   r\   é3  )"r   r   Údoitr   r   r   Úsimplifyr   r   Ú	is_finiteZ
is_complexZis_imaginaryÚ
is_integerÚis_realÚis_zeror   r_   r&   r   ÚargsÚis_nonnegativeZis_nonpositiver   ra   r   r'   r   r   r   r   ZNegativeOneÚfuncr   r	   )
rN   rq   r6   rh   rv   rg   r{   ÚeqÚqÚdr9   r9   r:   Ú	test_signØ   sÎ    0(&"$&  ÿ
04D :"$rŠ   c                  C   sÜ  t d } |  ¡ | dfksJ ‚tdƒ}t|ƒ ¡ t|ƒd t|ƒd  tddƒ ttt|ƒt|ƒƒd ƒ t|ƒd t|ƒd  tddƒ t	tt|ƒt|ƒƒd ƒ fks¬J ‚t
ddd	\}}dt||t  ƒ d  ¡ |d |d  tddƒ tt||ƒd ƒ d tj |d |d  tddƒ t	t||ƒd ƒ d fksDJ ‚t|d ƒ ¡ t|d ƒdfksjJ ‚t
d
dd}t|d ƒ ¡ dt|ƒfks˜J ‚dt dt   ¡ dks¶J ‚dt d dt   ¡ dksØJ ‚d S )Néè  r   rN   rF   rD   rJ   r=   Tr>   rA   rB   )r   rD   rI   )rl   r   )r   r^   r   r   r   r   r	   r#   r"   r$   r   r   r   r`   Úabs)r6   rN   r7   r8   rA   r9   r9   r:   Útest_as_real_imagR  s6    
::ÿÿÿÿÿÿ.ýÿ
&"r   c                  C   s€   t d } t| ƒ}tdƒ}| |  ¡ dks,J ‚t| | ƒdks@J ‚| | jd||iddks^J ‚| | jd||iddks|J ‚d S )Nr‹   rN   rD   ©Úsubsr   rF   )r   Úintr   Úroundr   r6   )r6   rA   rN   r9   r9   r:   Útest_sign_issue_3068p  s    r’   c                     sÞ  t tdd„ ƒ tdƒ\‰ } ttˆ ƒƒtˆ ƒks2J ‚tˆ |  ƒjtu sHJ ‚tdƒdksXJ ‚tdƒdkshJ ‚tdƒdksxJ ‚ttƒdksˆJ ‚tt ƒdksšJ ‚ttƒtu sªJ ‚ttƒt	u sºJ ‚ttt
 ƒt
ksÎJ ‚tt t
 ƒt
ksäJ ‚ttˆ  ƒtˆ ƒksüJ ‚tt ˆ  ƒtˆ ƒksJ ‚tdˆ  ƒdtˆ ƒ ks6J ‚td	ˆ  ƒd
tˆ ƒ ksTJ ‚tdt
 ˆ  |  ƒdt
 tˆ |  ƒ ks‚J ‚ttˆ ƒƒtˆ ƒksœJ ‚ttˆ ƒƒtˆ ƒks¶J ‚tˆ ƒjddttˆ ƒd tˆ ƒd  ƒksèJ ‚tddd}tdt
 ˆ  | ƒdt
 | tˆ ƒ ks"J ‚tdt
 t ˆ  | ƒdt
 | tˆ ƒ ksTJ ‚tddd‰ tddd}td| ƒdks‚J ‚ˆ d|  tˆ ƒd|  ks¤J ‚tˆ ƒ ˆ ¡tˆ ƒksÀJ ‚tˆ ƒtˆ ƒksÖJ ‚tˆ ƒd ˆ d tˆ ƒ ksøJ ‚tˆ ƒd ˆ d ksJ ‚tˆ ƒd|  jtˆ ƒd| fks:J ‚dtˆ ƒ jtˆ ƒdfksZJ ‚dtˆ ƒd  dˆ d tˆ ƒ  ks„J ‚tˆ ƒd tˆ ƒˆ d  ks¦J ‚tˆ d ƒˆ d tˆ ƒ ksÈJ ‚ttt ƒtt
 d ƒksèJ ‚tddt  ddt   ƒdtdttddƒƒ ƒ ks$J ‚tddd} tt|  ƒdksFJ ‚tdƒ} tt|  ƒtt
 t| ƒ d ƒksvJ ‚tddd‰ tˆ ƒ ˆ ¡tˆ ƒ ks J ‚tddtdƒ  ƒ tdtdƒ ƒ tddtdƒ  ƒ }t|ƒjtu süt|ƒdksüJ ‚dtdƒ dtdƒ  dtdƒ  }t|d ƒtddƒ }|| }t|ƒjtu s`t|ƒdks`J ‚tdtt
t d ƒ ƒdks‚J ‚tddt  ƒdksœJ ‚tddt  ƒdtt
ƒ k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	  ƒt	u sJ ‚tddd }td!dd"}tdƒ‰ t|ƒjsDJ ‚tˆ ƒjd u sXJ ‚t|ƒjd#u slJ ‚tˆ ƒ ¡ tˆ ƒks†J ‚t t‡ fd$d„ƒ ttdt ƒtdt ƒ ƒ}t|ƒ|ksÆJ ‚tdˆ  ƒdtˆ ƒ ksäJ ‚tdˆ d  ƒ}	|	jr|	dtˆ d ƒ ksJ ‚tt| ˆ  ƒs*J ‚ttˆ ˆ d  ƒsBJ ‚ttˆ |  ƒsVJ ‚td%dd}tˆ | ƒtˆ ƒ| ks€J ‚tttddd|  ƒsœJ ‚td&dd}
t|
ˆ ƒd ƒ|
ˆ ƒksÆJ ‚tttd'ƒƒsÚJ ‚d S )(Nc                   S   s   t tddƒƒS )NrF   rI   )r   r/   r9   r9   r9   r:   Ú<lambda>  rX   ztest_Abs.<locals>.<lambda>r<   r   rD   rE   rl   rF   g       Àg       @TrG   r7   rr   rN   r>   r6   ©rw   rI   rJ   rQ   rY   r\   é   i9 éùÿÿÿrg   rB   r|   r}   é	   rK   rL   rM   Fc                      s   t ˆ ƒ d¡S )NrF   )r   Úfdiffr9   ©rN   r9   r:   r“   Í  rX   rq   r{   zim(acos(-i + acosh(-g + i))))r4   Ú	TypeErrorr   r   r†   r   r   r   r   r   r   r   r   r   r   r   r   r_   rŒ   r„   r   r!   r	   rc   r˜   r1   r    Zis_Mulr0   r   r   )rg   r7   r6   r‡   rˆ   rq   r‰   rL   r   Úer{   r9   r™   r:   Útest_Abs~  s¦    .2.2""ÿÿ
 *"" <(:"$""""rœ   c                  C   s   t ddd} t| ƒ t¡ ¡ }|| t| ƒ | t|  ƒ  ks@J ‚dD ]}| | |¡t|ƒksDJ ‚qDt dƒ}t|ƒ t¡t|ƒks„J ‚t dddt dƒ } }t| ƒ t¡t| | dkf|  dfƒksÄJ ‚t|ƒ t¡t|ƒksÞJ ‚t|ƒ t¡|t|ƒ ksüJ ‚t ddd}t|ƒ t¡tt	| t	| dkft	 | dfƒks@J ‚t|ƒ t
¡t|t
|ƒ ƒksdJ ‚t|ƒ t
¡t|d	  ƒks†J ‚t ddd
}ttt	 |  ƒtt	 | ƒ ƒd	  t
¡tt	|  ƒ tt	 | ƒ d	 tt	 |  ƒtt	| ƒ  ksüJ ‚d S )NrN   Tr>   )rl   rE   r   rD   rF   rg   r   rA   rB   rF   ©Zextended_real)r   r   ra   r'   r   r   rŒ   r   r   r   r   r   r   )rN   r7   rA   rg   r9   r9   r:   Útest_Abs_rewriteæ  s&    "*8$"(8ÿrž   c                  C   sº   t ddd} t| d ƒt| ƒks$J ‚t| d ƒ| d ks<J ‚t ddd} t| d ƒt| ƒks`J ‚t| d ƒ| d ksxJ ‚t dddd}t dddd	}t|ƒ|ks¤J ‚t|ƒ| ks¶J ‚d S )
NrN   TrG   rF   r>   Únn)rx   r?   Únp)ry   r?   ©r   r   r   )rN   rŸ   r    r9   r9   r:   Útest_Abs_real   s    r¢   c            
      C   s„  t dƒ} t| ƒjd u sJ ‚t| ƒjdu s,J ‚t| ƒjd u s>J ‚t| ƒjd u sPJ ‚t| ƒjd u sbJ ‚t| ƒjd u stJ ‚t| ƒjdu s†J ‚t ddd}t|ƒjdu s¤J ‚t|ƒjdu s¶J ‚t|ƒjd u sÈJ ‚t|ƒjd u sÚJ ‚t|ƒjdu sìJ ‚t|ƒjd u sþJ ‚t|ƒjdu sJ ‚t dddd}t|ƒjdu s4J ‚t|ƒjdu sHJ ‚t|ƒjd u s\J ‚t|ƒjdu spJ ‚t|ƒjdu s„J ‚t|ƒj	du s˜J ‚t ddd}t|ƒjdu s¸J ‚t|ƒjdu sÌJ ‚t|ƒjd u sàJ ‚t|ƒjdu sôJ ‚t|ƒj	du sJ ‚t d	dd
}t|ƒjdu s(J ‚t|ƒjdu s<J ‚t|ƒj
d u sPJ ‚t|ƒjd u sdJ ‚t|ƒjdu sxJ ‚t ddd}t|ƒjdu s˜J ‚t|ƒj
du s¬J ‚t|ƒjd u sÀJ ‚t|ƒjdu sÔJ ‚t ddd}t dddd}t|ƒjdu sJ ‚t|ƒjdu sJ ‚t|ƒjd u s*J ‚t ddd}t dddd}	t|ƒjdu sXJ ‚t|	ƒjdu slJ ‚t|ƒjd u s€J ‚d S )NrN   T)ÚfiniteÚzF)rH   rz   rq   rr   rˆ   )ZrationalrA   r”   r6   )ÚevenÚne)r?   r¥   )ÚoddÚno)r?   r§   )r   r   r‚   Zis_extended_realZis_rationalZis_positiver…   Zis_extended_positiveZis_extended_nonnegativerƒ   r   Zis_evenZis_odd)
rN   r{   r¤   rq   rˆ   rA   r›   r¦   Úor¨   r9   r9   r:   Útest_Abs_properties  sd    rª   c                  C   s4   t ddd} ttd|  d  ƒd|  d ks0J ‚d S )Nr7   Trr   rD   rF   )r   rŒ   r   )r7   r9   r9   r:   Útest_absN  s    r«   c                  C   s@  t dƒtu sJ ‚t dƒdks J ‚t dƒtks0J ‚t tƒtd ksDJ ‚t t ƒt d ks\J ‚t dt ƒtd kstJ ‚t dt ƒttddƒ ks’J ‚t dt ƒt d ks¬J ‚t tdt t ƒƒdt ksÌJ ‚t tdt t ƒƒdt ksìJ ‚t tddt t d  ƒƒttd	dƒ ksJ ‚t ttt d
 ƒƒtd
 ks>J ‚t tdt ƒƒddt  ks`J ‚t tdt t d ƒƒdt d ksŠJ ‚t tddt  ƒƒddt  ks°J ‚t ttddt  ƒƒƒdt tdƒt	dƒ  ksæJ ‚t
ddd} t t| dt  ƒƒdksJ ‚tdƒ}t |dƒt|dƒ  ƒ t¡r<J ‚t
dƒ}t t t |ƒƒƒtjus`J ‚t t t t |ƒƒƒƒtju s€J ‚t
ddd} t t | ƒƒtjus¤J ‚t t t | ƒƒƒtju sÀJ ‚tddd}t ||ƒƒdksâJ ‚t dt ||ƒ ƒt dt ƒksJ ‚t
ddd}t |ƒdks&J ‚t |t ƒtd ks@J ‚t
ddd}t |ƒtks^J ‚t |t ƒt d kszJ ‚t
dƒ}tt |ƒƒt |ƒksœJ ‚|t|d   }t |ƒt d|t  ƒksÊJ ‚d| dt |d   }t |ƒt dd| t  ƒksJ ‚tddd}|t|  }t |ƒt |dt  ƒks:J ‚t || ƒt |dt  ƒks\J ‚|t|ƒ tt|ƒ t|ƒ  }t |ƒjd |ks”J ‚|d t|d d   }t |ƒjd |ksÄJ ‚tdƒ}d| |dƒd  d| |dƒ  }t |ƒt d| ƒks
J ‚t |dƒƒjt kr8t |dƒƒj|dƒfks<J ‚d S )Nr   rD   rE   rF   rJ   rI   r–   rY   rQ   r•   é   r\   é   é   iõÿÿÿé{   éûÿÿÿrl   r@   Tr>   r{   rN   r   rq   )Zextended_positiverr   r6   rs   )r   r   r   r   r	   r   r   r$   r#   r%   r   r   Zatomsr   r   re   r   r   r   r„   r†   )r@   r{   rN   rq   r6   r›   r9   r9   r:   Útest_argU  sj      0""*&6$ &"" $r±   c                  C   sZ   t dt ƒtddƒksJ ‚tddd} tddd}t | t|  ƒ t¡t|| ƒksVJ ‚d S )NrD   rN   Tr>   rg   )r   r   r"   r   ra   )rN   rg   r9   r9   r:   Útest_arg_rewriteš  s    r²   c                      s˜   t dƒ‰ tˆ ƒjˆ dddks"J ‚tˆ ƒjˆ ddtks<J ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tˆ ƒ ˆ ¡dksvJ ‚tˆ ƒjˆ dd	tdƒks”J ‚d S )
NrN   rD   ©Úcdirr   rE   c                      s   t ˆ t ƒjˆ ddS )NrD   r³   )r   r   Úas_leading_termr9   r™   r9   r:   r“   ¦  rX   z2test_arg_leading_term_and_series.<locals>.<lambda>c                      s   t dˆ  ƒjˆ tdS )NrF   r³   )r   rµ   r   r9   r™   r9   r:   r“   §  rX   )r6   )r   r   rµ   r   r4   r   Znseriesr2   r9   r9   r™   r:   Ú test_arg_leading_term_and_series¢  s    r¶   c                  C   s6  t ddd} t ddd}t| ƒ|  ks*J ‚tt|  ƒt|  ksBJ ‚t|ƒ|ksRJ ‚tt| ƒt | kslJ ‚t| | ƒ| |  ks†J ‚tt|  | ƒt| |  ks¦J ‚tdƒ\}}tt|ƒƒ|ksÆJ ‚t|| ƒt|ƒt|ƒ ksæJ ‚t|| ƒt|ƒt|ƒ ksJ ‚t|| ƒt|ƒt|ƒ ks*J ‚t|| ƒt|ƒt|ƒ ksLJ ‚t| ƒt|ƒ ksfJ ‚tddd\}}tt|ƒƒ|ksŒJ ‚t|| ƒt|ƒt|ƒ ks®J ‚t|| ƒt|ƒt|ƒ ksÐJ ‚t|| ƒt|ƒt|ƒ ksòJ ‚t|| ƒd	t|ƒ t|ƒ ksJ ‚t| ƒt|ƒ ks2J ‚d S )
Nr7   T)Zantihermitianr8   )Z	hermitianúx yF©ZcommutativerD   )r   r   r   r   r   )r7   r8   rN   rg   r9   r9   r:   Útest_adjoint­  s,      """"""&r¹   c                  C   sÎ  t ddd} t ddd}t| ƒ| ks(J ‚tt|  ƒt |  ksBJ ‚t|ƒ| ksTJ ‚tt| ƒt| kslJ ‚t| | ƒ|  | ks†J ‚tt|  | ƒt|  | ks¦J ‚tdƒ\}}tt|ƒƒ|ksÆJ ‚t|ƒ ¡ tksÚJ ‚t|| ƒt|ƒt|ƒ ksúJ ‚t|| ƒt|ƒt|ƒ ksJ ‚t|| ƒt|ƒt|ƒ ks>J ‚t|| ƒt|ƒt|ƒ ks`J ‚t| ƒt|ƒ kszJ ‚t ddd} t ddd	}t| ƒjs¢J ‚t|ƒjd u s¶J ‚t|ƒjd
u sÊJ ‚d S )Nr7   Tr>   r8   rB   r·   rK   rL   rM   F)r   r   r   r   Zinverser   rc   )r7   r8   rN   rg   rL   r9   r9   r:   Útest_conjugateÈ  s*      """rº   c                  C   sÌ   t ddd} tt| ƒƒt| ƒks$J ‚tt| ƒƒt| ƒks<J ‚tt| ƒƒt| ƒksTJ ‚tt| ƒƒt| ƒkslJ ‚tt| ƒƒt| ƒks„J ‚tt| ƒƒt| ƒksœJ ‚t dƒ} t| ƒt| ƒks¸J ‚t| ƒ| ksÈJ ‚d S )NrN   Fr¸   )r   r   r   r   r™   r9   r9   r:   Útest_conjugate_transposeâ  s    r»   c                  C   s–  t ddd} t| ƒ| ksJ ‚tt|  ƒt|  ks4J ‚tdƒ\}}tt|ƒƒ|ksTJ ‚t|| ƒ|| kslJ ‚t|| ƒ|| ks„J ‚t|| ƒ|| ksœJ ‚t|| ƒ|| ks´J ‚t| ƒ| ksÈJ ‚tddd\}}tt|ƒƒ|ksìJ ‚t|| ƒt|ƒt|ƒ ksJ ‚t|| ƒt|ƒt|ƒ ks0J ‚t|| ƒt|ƒt|ƒ ksRJ ‚t|| ƒdt|ƒ t|ƒ ksxJ ‚t| ƒt|ƒ ks’J ‚d S )Nr7   TrG   r·   Fr¸   rD   )r   r   r   r   )r7   rN   rg   r9   r9   r:   Útest_transposeð  s"    """&r¼   c            
   	   C   sš  ddl m} m} tdƒ}tddd}tdƒ}i }|dƒ| dƒ|fksHJ ‚|d	t ƒ| d	t ƒ|fkshJ ‚|t|ƒd
dt|ƒks„J ‚|d	| d
dd	| ks J ‚||tƒ| d
d|| tƒƒ| ksÈJ ‚||dd| |ƒksàJ ‚||dd|ksôJ ‚|||ƒdd|| |ƒƒksJ ‚|d	| dd| d	| ƒks8J ‚|d	||ƒ dd| d	|| |ƒƒ ƒksfJ ‚|||ƒ| ƒ\}}| |¡||ƒ| ks–J ‚tdƒ}tddd}	|tt	dƒ| t| | d  d|	d   ƒ dt	t
ƒ |	  |t tfƒddtt	dƒ|	tdƒ ttt
 ƒ  t|	tdƒ dttt
 ƒ  ttt
 ƒ | | | ƒdtdƒ   d ƒ tdƒ | |ƒ dt	t
ƒ  |t tfƒks–J ‚d S )Nr   )Ú
polar_liftÚpolarifyrN   r¤   T)Zpolarr{   rE   rD   FrŽ   )ZliftÚmuÚsigmarr   rF   )Ú$sympy.functions.elementary.complexesr½   r¾   r   r   r   r   r   r(   r   r   r   r   )
r½   r¾   rN   r¤   r{   ÚESZnewexr   r¿   rÀ   r9   r9   r:   Útest_polarify  sR     ("".<
ÿþ 4
ÿÿÿþþ
þ
þþrÃ   c                  C   sî  ddl m} m}m} ddlm} ddlm} ddlm	} ddl
m}m} ddlm} tdt ƒd	 }	tdt ƒd	 }
|d	ƒd	ks„J ‚||	ƒ|
ks”J ‚||	d
 ƒ|
d
 ks¬J ‚||	| ƒ|	| ksÄJ ‚||	| ƒ|
| ksÜJ ‚||	| ƒ|
| ksôJ ‚|tt|	ƒƒƒtt|
ƒƒksJ ‚||d
t ƒ}||ƒ|ks6J ‚|t|ƒƒt|ƒksPJ ‚||	|	 dd|	|
 ksnJ ‚||||	|	 ƒƒ|||	|
 ƒks”J ‚|t|	ƒƒt|
ƒks®J ‚|||	ƒƒ||
ƒksÈJ ‚|||	ƒƒ||
ƒksâJ ‚|||	ƒƒ||
ƒksüJ ‚||||	ƒƒ|||	ƒksJ ‚||t|	ƒt|	tdƒ ƒƒƒ|t|
ƒt|
d	 ƒƒksTJ ‚||| dƒd
tdƒ ƒƒ|dd
ƒks~J ‚|t|	dƒƒt|
dƒksœJ ‚|||	dƒƒ||
dƒksºJ ‚|| |ƒdkƒ|dkksØJ ‚|dƒdu sêJ ‚d S )Nr   )r½   Úprincipal_branchÚ
unpolarify)ÚNe)Útanh)Úerf)ÚgammaÚ
uppergammar™   r•   rD   rF   T)Zexponents_only)rÁ   r½   rÄ   rÅ   Úsympy.core.relationalrÆ   Ú%sympy.functions.elementary.hyperbolicrÇ   Z'sympy.functions.special.error_functionsrÈ   Z'sympy.functions.special.gamma_functionsrÉ   rÊ   Z	sympy.abcrN   r   r   r   r   r$   r   r   )r½   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rN   rq   ÚurL   r9   r9   r:   Útest_unpolarify*  sF    "&ÿ
ÿ
rÎ   c                  C   s`   t dƒ} t| ƒjddt| ƒks$J ‚t| ƒjddt| ƒks@J ‚t| ƒjddt| ƒks\J ‚d S )NrN   T)Ztrig)r   r   r   r   r   r™   r9   r9   r:   Útest_issue_4035Y  s    rÏ   c                  C   s$   t dƒ} tt| ƒƒt| ƒks J ‚d S )NrN   )r   r   r™   r9   r9   r:   Útest_issue_3206`  s    rÐ   c                  C   sv   t ddd} t ddd}tdƒ}|| ƒ ¡  | ¡|| ƒ | ¡ ¡ ksHJ ‚||ƒ ¡  |¡||ƒ |¡ ¡  ksrJ ‚d S )NrN   Tr>   rg   rB   r{   )r   r   r   r_   ©rN   rg   r{   r9   r9   r:   Ú$test_issue_4754_derivative_conjugatee  s
    (rÒ   c                  C   sâ  t ddd} t ddd}tdƒ}t|| ƒƒ | ¡t|| ƒ | ¡ƒksHJ ‚t|| ƒƒ | ¡t|| ƒ | ¡ƒkspJ ‚t||ƒƒ |¡t t||ƒ |¡ƒ ksžJ ‚t||ƒƒ |¡t t||ƒ |¡ƒ ksÌJ ‚t|| ƒƒ | ¡ || ƒdt|   ¡ ¡ | t	d| d  ƒ ksJ ‚t
|| ƒƒ | ¡ || ƒdt| d   ¡ ¡ d|  d| d	   ksXJ ‚t||ƒƒ |¡ ||ƒd| ¡ ¡ | t	d|d  ƒ ksšJ ‚t
||ƒƒ |¡ ||ƒt|d  ¡ ¡ d| d|d	   ksÞJ ‚d S )
NrN   Tr>   rg   rB   r{   rD   rF   rJ   )r   r   r   r_   r   r   r   r   r~   r   r   rÑ   r9   r9   r:   Útest_derivatives_issue_4757m  s    ((..DHBrÓ   c               	   C   sR  ddl m}  tdƒ}tdƒ}tdƒ}t|g|g|ggƒ}| ¡ }|t|tt|ƒd t|ƒd  t|ƒd  ƒ g|tt|ƒd t|ƒd  t|ƒd  ƒ g|tt|ƒd t|ƒd  t|ƒd  ƒ ggƒksÔJ ‚t|d |d |d  |d   |d |d |d  |d    |d |d |d  |d    ƒ|_| |jƒdksNJ ‚d S )Nr   ©r   Úv0Úv1Úv2rF   rD   )Úsympy.simplify.simplifyr   r   r)   Ú
normalizedr   r   Znorm)r   rÕ   rÖ   r×   ÚVÚUr9   r9   r:   Útest_issue_11413{  s    ,,,ýfrÜ   c                  C   s6  ddl m} m}m}m} tdƒ}tddd}|dt ƒ| dt tƒksJJ ‚|d| ƒ| d| tƒkshJ ‚t|dt d ƒt	d ƒs†J ‚t|dt d ƒt	 d ƒs¦J ‚t| dt d d	t	 ƒt	d ƒsÊJ ‚t| dt d d	t	 ƒt	 d ƒsðJ ‚|||t	ƒƒ| |t	ƒksJ ‚||dt ƒƒ|dt ƒks0J ‚| |dt ƒdt	 ƒ| dt dt	 ƒks^J ‚| |dt ƒd	t	 ƒ| dt d	t	 ƒksŒJ ‚| |dt ƒt	ƒ| |dt ƒt	ƒks¶J ‚||dt ƒƒt	d
 ksÔJ ‚| d| |ƒ| ||ƒksòJ ‚| t	| |ƒ| ||ƒksJ ‚t
|dt ƒƒt
dt ƒks2J ‚d S )Nr   )Úperiodic_argumentr½   rÄ   Úunbranched_argumentrN   rq   Trr   rF   rD   rI   rJ   )rÁ   rÝ   r½   rÄ   rÞ   r   r   r   r;   r   r   )rÝ   r½   rÄ   rÞ   rN   rq   r9   r9   r:   Útest_periodic_argumentŠ  s4     $&ÿ
"ÿ
ÿ
ÿ
rß   c                  C   s0   ddl m}  t| dt d td ƒdƒs,J ‚d S )Nr   ©rÄ   rD   rF   )rÁ   rÄ   r;   r   r   rà   r9   r9   r:   Útest_principal_branch_fail¨  s    rá   c                  C   sZ  ddl m} m} tddd}tdƒ}tddd}|| |ƒ|ƒ|||ƒksLJ ‚|| dt ƒ|ƒ|dt |ƒkspJ ‚|d| |ƒd|||ƒ ksJ ‚|d	tƒtdƒks¦J ‚|d
dt ƒttt ƒksÄJ ‚|d
tƒtdƒksÚJ ‚|tdt t ƒ| dt ƒ|ttt ƒ| dt ƒksJ ‚||ttt ƒ dt ƒ|tt t ƒ ksJJ ‚|tt t d ƒ| |ƒ dt ƒtt t d ƒ| ksŠJ ‚t|d	t d dt ƒdt ƒs°J ‚t|d	t d dt ƒdt ƒsÖJ ‚t|d	t d d	t ƒdt ƒsüJ ‚||tƒj|u sJ ‚||dƒj|u s(J ‚||t	 ƒj|u s@J ‚||t
ƒj|u sVJ ‚d S )Nr   )r½   rÄ   rq   Trr   rN   rs   rF   rD   rE   rI   éüÿÿÿ)rÁ   r½   rÄ   r   r   r   r   r;   r†   r   r   )r½   rÄ   rq   rN   Únegr9   r9   r:   Útest_principal_branch¯  s0    $ ÿ
2"ÿ
&&&rä   c            	      C   sÐ   t d } t| ƒ}t| | ƒdks$J ‚t| | ƒ| | ks<J ‚tdƒ}t d }t d }t|ƒd t|ƒd  }|| | | }ddlm} t||ƒƒdksœJ ‚dd	dt	dd
ƒfD ]}t| 
||¡ƒdks®J ‚q®d S )Nr‹   rD   rN   i$úÿÿrF   r   rÔ   éo   é   r|   )r   r   r   rŒ   r   r#   r$   rØ   r   r	   r   )	r6   rA   rN   ZepsÚbigZoner›   r   Úxir9   r9   r:   Útest_issue_6167_6151Í  s    ré   c                  C   s\   ddl m}  tdddƒ}| |d ƒ|d ks0J ‚| |d |d  ƒ|d |d  ksXJ ‚d S )Nr   )rÅ   rP   rF   )r   r   )rD   r   )rÁ   rÅ   r+   )rÅ   rP   r9   r9   r:   Útest_issue_14216Þ  s    rê   c                  C   s6   t ddd} t| td| dkfd|  dfƒ ƒs2J ‚d S )Nr@   Tr>   r   rD   )r   r   r   )r@   r9   r9   r:   Útest_issue_14238å  s    rë   c                  C   sL   t dƒ} tdd|   ƒd d|  fD ]"}t|ƒt| ƒ dks$J |ƒ‚q$d S )NrN   r•   rF   rD   r   r¡   )rN   r7   r9   r9   r:   Útest_issue_22189ë  s     rì   c                  C   s˜   t dddd} t ddd}t dddd}t| ƒjd u s:J ‚t| ƒjdu sLJ ‚t|ƒjd u s^J ‚t|ƒjd u spJ ‚t|ƒjdu s‚J ‚t|ƒjd u s”J ‚d S )	NZnonrealFT)r?   r£   ZnonimaginaryrB   Znonzerononimaginary)rz   rC   )r   r   rƒ   r   )ÚnrÚniZnznir9   r9   r:   Útest_zero_assumptionsñ  s    rï   c                  C   sJ   t ddd} tddd}tt| |ƒƒ| |ƒƒ}| ¡ t| |ƒƒksFJ ‚d S )Nr{   Tr>   rN   )r   r   r   r   r~   r   )r{   rN   r‡   r9   r9   r:   Útest_issue_15893  s    rð   N)lZsympy.core.functionr   r   r   r   r   Zsympy.core.numbersr   r   r	   r
   r   r   r   r   rË   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   rÁ   r   r   r   r   r   r   r   r   Z&sympy.functions.elementary.exponentialr   r   r   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z(sympy.functions.elementary.trigonometricr    r!   r"   r#   r$   rÌ   r%   Z'sympy.functions.special.delta_functionsr&   r'   Zsympy.integrals.integralsr(   Zsympy.matrices.denser)   Z%sympy.matrices.expressions.funcmatrixr*   Z"sympy.matrices.expressions.matexprr+   Zsympy.matrices.immutabler,   r-   Zsympy.matricesr.   Zsympy.sets.setsr/   Zsympy.core.exprr0   r1   Zsympy.series.orderr2   Zsympy.testing.pytestr3   r4   r5   r;   rk   ro   rŠ   r   r’   rœ   rž   r¢   rª   r«   r±   r²   r¶   r¹   rº   r»   r¼   rÃ   rÎ   rÏ   rÐ   rÒ   rÓ   rÜ   rß   rá   rä   ré   rê   rë   rì   rï   rð   r9   r9   r9   r:   Ú<module>   sz   ((`Yz
h<E
#/

