U
    L?hV„  ã                   @   s¤  d dl mZ d dl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l0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z? d dl@mAZA d dl mBZB d dlmCZC d dlDmEZEmFZFmGZG dd„ ZHdd„ ZIdd„ ZJdd„ ZKd d!„ ZLeEd"d#„ ƒZMd$d%„ ZNd&d'„ ZOd(d)„ ZPd*d+„ ZQd,d-„ ZRd.d/„ ZSd0d1„ ZTd2d3„ ZUd4d5„ ZVd6d7„ ZWd8d9„ ZXeGd:d;„ ƒZYd<d=„ ZZd>d?„ Z[d@dA„ Z\dBdC„ Z]dDdE„ Z^dFdG„ Z_dHdI„ Z`eEdJdK„ ƒZadLdM„ ZbeEdNdO„ ƒZcdPdQ„ ZddRdS„ ZedTdU„ ZfdVdW„ ZgeGdXdY„ ƒZhdZS )[é    )ÚExpr)Ú
DerivativeÚFunctionÚLambdaÚexpand)Ú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)ÚXFAILÚraisesÚ_both_exp_powc                 C   s   t |  ¡ | ¡ dƒS )z7Check whether two complex numbers are numerically closegíµ ÷Æ°>)r
   Ún)ÚaÚb© r8   úa/var/www/html/venv/lib/python3.8/site-packages/sympy/functions/elementary/tests/test_complexes.pyÚN_equals   s    r:   c                  C   sR  t dƒ\} }t ddd\}}tddd}tddd}ttƒtksDt‚ttƒtksTt‚tt ƒt ksht‚tdƒdksxt‚td	ƒd	ksˆt‚td
ƒd
ks˜t‚ttƒtks¨t‚tt ƒt ks¼t‚tt| ƒsÊt‚t| t ƒt	| ƒ ksät‚t|t ƒdksøt‚t|ƒ|ks
t‚t|t ƒt| ks$t‚t|ƒdks6t‚t| | ƒt| ƒt|ƒ ksXt‚t| | ƒt| ƒ| ksvt‚tt| ƒƒt| ƒkst‚tdt ƒdks¦t‚t| t ƒt| ƒksÀt‚t| |t  ƒt| ƒt	|ƒ ksæt‚t| |t  ƒt| ƒkst‚tt
dt ƒƒt
dƒks"t‚tdt d ƒjdddksDt‚tt| ƒƒt| ƒks^t‚tt| ƒƒt| ƒksxt‚t| ƒ ¡ t| ƒdfks–t‚t|| |  ƒ |¡t||  ƒks¾t‚t|| |  ƒ |¡t| t	| ƒ ksêt‚tt||t  ƒƒ|d |d  td	dƒ tt||ƒd ƒ ks0t‚t|d|t   ƒd| ksRt‚td	t||t  ƒ d ƒ|d |d  td	dƒ tt||ƒd ƒ d tj ksªt‚t| ƒ t	¡| tjt	| ƒ  ksÐt‚| t|ƒ  tt	¡| | tjt	|ƒ  ks t‚tddd}tddd}tdƒ} t|ƒjs0t‚t| ƒjd ksDt‚t|ƒjdksXt‚ttjƒtjksnt‚t dƒ\}}}	td||ƒ}
t|
ƒtj|
t|
ƒ  ks¨t‚td	dt  dgddt ggƒ}
t|
ƒtd	dgddggƒksêt‚td	dt  ddt  gddt ggƒ}
t|
ƒtd	dgddggƒks4t‚tdd„ tdƒD ƒƒ}t|ƒtdddddgdddddgdddddgdddddgdddddggƒ t d¡ks¦t‚t	|ƒtdd	dddgdd	dddgdd	dddgdd	dddgdd	dddggƒ t d¡kst‚t ddt!||f||t  ƒƒ}t|ƒtdddgd	d	d	gdddggƒksNt‚d S )Núx,yúa,bT©ÚrealÚrÚi©Ú	imaginaryr   é   éÿÿÿÿé   ©Úcomplexé   é   r6   ©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 )rE   ©r   ©Ú.0r@   ©Újr8   r9   Ú
<listcomp>n   s     z&test_re.<locals>.<listcomp>.<listcomp>é   ©Úrange)rS   r8   rT   r9   rV   n   s     ztest_re.<locals>.<listcomp>rW   é   é   )"r   r   r   r   ÚAssertionErrorr   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.   rY   Zzerosr*   r   )rM   Úyr6   r7   r?   r@   rK   r5   ÚmÚlrO   ÚXr8   r8   r9   Útest_re   s˜    "&"(,ÿ*ÿ
"4ÿ
&0  "("üü
üü
ri   c                  C   s
  t dƒ\} }t ddd\}}tddd}tddd}ttƒtksDt‚ttt ƒtksXt‚tt t ƒt kspt‚tdƒdks€t‚td	ƒdkst‚td
ƒdks t‚ttt ƒtks´t‚tt t ƒt ksÌt‚tt| ƒsÚt‚t| t ƒt	| ƒksòt‚t|t ƒ|kst‚t|ƒdkst‚t|t ƒdks0t‚t|ƒt | ksHt‚t| | ƒt| ƒt|ƒ ksjt‚t| | ƒt| ƒks„t‚t| |t  ƒt| ƒ| ks¦t‚tt| ƒt ƒt| ƒksÄt‚tdt ƒd	ksÚt‚t| t ƒt| ƒd	 ksøt‚t| |t  ƒt| ƒt	|ƒ kst‚t| |t  ƒt| ƒ| ks@t‚tt
dt ƒƒtd ks^t‚tdt d ƒjdddks€t‚tt| ƒƒt| ƒ ksœt‚tt| ƒƒt| ƒks¶t‚t| ƒ ¡ t| ƒdfksÔt‚t|| |  ƒ |¡t||  ƒksüt‚t|| |  ƒ |¡t t	||  ƒ ks*t‚tt||t  ƒƒ|d |d  td	dƒ tt||ƒd ƒ kspt‚t|d|t   ƒ|| ks’t‚td	t||t  ƒ d ƒ|d |d  td	dƒ tt||ƒd ƒ d ksät‚t| ƒ t	¡tj | t	| ƒ  kst‚| t|ƒ  tt	¡| tj|t	|ƒ   ks<t‚tddd}tddd}tdƒ} t	|ƒjslt‚t	| ƒjd ks€t‚t	|ƒjdks”t‚ttjƒtjksªt‚t dƒ\}}}	td||ƒ}
t|
ƒtjdt  |
t|
ƒ  ksìt‚td	dt  dgddt ggƒ}
t|
ƒtddgddggƒks.t‚td	dt  ddt  gddt ggƒ}
t|
ƒtddgddggƒksxt‚tdd„ tdƒD ƒƒ}t dd„ tdƒD ƒƒ}t|ƒ !¡ |ksºt‚t"ddt#||f||t  ƒƒ}t|ƒtdd	dgdd	dgdd	dggƒkst‚d S )Nr;   r<   Tr=   r?   r@   rA   r   rC   rD   rE   rF   rI   r6   rJ   rK   rL   rM   FrN   rO   rP   rH   éþÿÿÿc                 S   s   g | ]}d d„ t dƒD ƒ‘qS )c                 S   s   g | ]}|t  | ‘qS r8   rQ   rR   r8   r8   r9   rV   Ñ   s     z&test_im.<locals>.<listcomp>.<listcomp>rW   rX   rR   r8   r8   r9   rV   Ñ   s     ztest_im.<locals>.<listcomp>rW   c                 S   s   g | ]}t td ƒƒ‘qS )rW   )ÚlistrY   rR   r8   r8   r9   rV   Ò   s     )$r   r   r   r   r\   r   r   r   r0   r   r   r   r   r   r]   r^   r   r	   r$   r"   r`   r   ra   rb   rc   rd   r+   ZOner)   r,   r-   rY   r.   Zas_immutabler*   r   )rM   re   r6   r7   r?   r@   rK   r5   rf   rg   rO   rh   ÚYr8   r8   r9   Útest_im   s‚    ""&""(.ÿ*ÿ
".ÿ
(0( "("ÿrm   c            
      C   s´	  t dƒdkst‚t dƒdks t‚t dt ƒtks4t‚t dt ƒt ksJt‚t dƒdksZt‚t ddd	 ¡ dksrt‚t tdd	 ¡ dksŠt‚t tƒtksšt‚t d
d
t  ƒ ¡ td
ƒd
d
t   d ksÊt‚t d
dt  ƒ ¡ t d
dt  ƒksòt‚t d
d
t  ƒ ¡ t dt ƒkst‚t ttdtdƒ ƒƒƒdks:t‚t tdtdƒ ƒƒtksXt‚t	dƒ} t | ƒj
dkstt‚t | ƒjdksˆt‚t | ƒjd ksœt‚t | ƒjd ks°t‚t | ƒjd ksÄt‚t | ƒjd ksØt‚t | ƒ ¡ t | ƒksòt‚t d|  ƒt | ƒkst‚t d
|  ƒt | ƒks&t‚t t|  ƒtt | ƒ ksDt‚t dt |  ƒt t | ƒ ksht‚t t| ƒƒtt | ƒƒks†t‚t	ddd}t	ddd}t	ddd}t d
| |  ƒt | ƒksÈt‚t ||  ƒt | ƒ ksät‚t || |  ƒt | ƒkst‚t	ddd} t | ƒjdks"t‚t | ƒjdks6t‚t | ƒjdksJt‚t | ƒjdks^t‚t | ƒ | ¡d
tt |  ƒ ks„t‚t | ƒ ¡ | t| ƒ ks¢t‚tt | ƒƒt | ƒ ks¾t‚t	ddd} t | ƒjdksÞt‚t | ƒjdksòt‚t | ƒjdkst‚t | ƒjd kst‚t | ƒ | ¡d
t| ƒ ks:t‚t | ƒ ¡ t | ƒksTt‚tt | ƒƒt | ƒksnt‚t	ddd} t | ƒjdksŽt‚t | ƒjdks¢t‚t | ƒjdks¶t‚t | ƒjdksÊt‚t | ƒ ¡ | t| ƒ ksèt‚t t| ƒƒdksþt‚tt | ƒƒdkst‚t	ddd} t | ƒjdks4t‚t | ƒjdksHt‚t | ƒjdks\t‚t | ƒjdkspt‚t | ƒ ¡ | t| ƒ ksŽt‚t t| ƒƒdks¤t‚tt | ƒƒdksºt‚d} t | ƒjdksÒt‚t | ƒjdksæt‚t | ƒjdksút‚t | ƒjdkst‚t | ƒ ¡ dks$t‚t t| ƒƒdks:t‚tt | ƒƒdksPt‚t	dddd}t |ƒjdksrt‚t |ƒjdks†t‚t |ƒjdksšt‚t |ƒjdks®t‚t |ƒd
 dksÄt‚t |ƒd jt |ƒdfksät‚t t	dddƒjsüt‚t t	dddƒjd kst‚t t	dddƒjd ks4t‚t t	dddƒjsLt‚t t	dddƒjd ksht‚t t	dddƒjd ks„t‚t t	ddddƒjd ks¢t‚t	dddt	dƒ } }tdƒ}t | ƒ t¡td| dkfd| dk fdƒksðt‚t |ƒ t¡t |ƒkst‚t | ƒ t¡d
t| tdƒd
 d d ks<t‚t |ƒ t¡t |ƒksXt‚t |ƒ t¡tdt|dƒf|t|ƒ dfƒksŒt‚t ||ƒƒ t¡tdt||ƒdƒf||ƒt||ƒƒ dfƒksÐt‚t ttt ƒt ƒtjksðt‚td d!tdƒ  ƒ tdtdƒ ƒ tddtdƒ  ƒ }t |ƒj t k	sLt |ƒdk	sLt‚dtd
ƒ d
tdƒ  d"td!ƒ  }t!|d ƒt"ddƒ }|| }	t |	ƒj t k	s°t |	ƒdk	s°t‚d S )#Ng333333ó?rC   g333333ó¿rD   rH   rP   r   F)ÚevaluaterE   rI   rM   Trj   Úp©Zpositiver5   ©Únegativerf   rA   r=   )ÚnonzeroÚnz)rs   Úinteger)Únonnegative)Únonpositive)r>   Úzerore   Úf)r   T)ZH0é
   rZ   é3  )#r   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   r`   r   r'   r   r   r   r   ZNegativeOneÚfuncr   r	   )
rM   ro   r5   rf   rt   re   ry   ÚeqÚqÚdr8   r8   r9   Ú	test_signØ   sÎ    0(&"$&  ÿ
04D :"$rˆ   c                  C   sÜ  t d } |  ¡ | dfkst‚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¬t‚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sDt‚t|d ƒ ¡ t|d ƒdfksjt‚td
dd}t|d ƒ ¡ dt|ƒfks˜t‚dt dt   ¡ dks¶t‚dt d dt   ¡ dksØt‚d S )Néè  r   rM   rE   rC   rI   r<   Tr=   r@   rA   )r   rC   rH   )rj   r   )r   r]   r\   r   r   r   r   r	   r#   r"   r$   r   r   r   r_   Úabs)r5   rM   r6   r7   r@   r8   r8   r9   Útest_as_real_imagR  s8    
::ÿÿ ÿÿÿÿ.ýÿ
&"r‹   c                  C   s€   t d } t| ƒ}tdƒ}| |  ¡ dks,t‚t| | ƒdks@t‚| | jd||iddks^t‚| | jd||iddks|t‚d S )Nr‰   rM   rC   ©Úsubsr   rE   )r   Úintr   Úroundr\   r   r5   )r5   r@   rM   r8   r8   r9   Útest_sign_issue_3068p  s    r   c                     sÞ  t tdd„ ƒ tdƒ\‰ } ttˆ ƒƒtˆ ƒks2t‚tˆ |  ƒjtksHt‚tdƒdksXt‚tdƒdksht‚tdƒdksxt‚ttƒdksˆt‚tt ƒdksšt‚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tˆ  ƒtˆ ƒksüt‚tt ˆ  ƒtˆ ƒkst‚tdˆ  ƒdtˆ ƒ ks6t‚td	ˆ  ƒd
tˆ ƒ ksTt‚tdt ˆ  |  ƒdt tˆ |  ƒ ks‚t‚ttˆ ƒƒtˆ ƒksœt‚ttˆ ƒƒtˆ ƒks¶t‚tˆ ƒjddttˆ ƒd tˆ ƒd  ƒksèt‚tddd}tdt ˆ  | ƒdt | tˆ ƒ ks"t‚tdt t ˆ  | ƒdt | tˆ ƒ ksTt‚tddd‰ tddd}td| ƒdks‚t‚ˆ d|  tˆ ƒd|  ks¤t‚tˆ ƒ ˆ ¡tˆ ƒksÀt‚tˆ ƒtˆ ƒksÖt‚tˆ ƒd ˆ d tˆ ƒ ksøt‚tˆ ƒd ˆ d kst‚tˆ ƒd|  jtˆ ƒd| fks:t‚dtˆ ƒ jtˆ ƒdfksZt‚dtˆ ƒd  dˆ d tˆ ƒ  ks„t‚tˆ ƒd tˆ ƒˆ d  ks¦t‚tˆ d ƒˆ d tˆ ƒ ksÈt‚ttt ƒtt d ƒksèt‚tddt  ddt   ƒdtdttddƒƒ ƒ ks$t‚tddd} tt|  ƒdksFt‚tdƒ} tt|  ƒtt t| ƒ d ƒksvt‚tddd‰ tˆ ƒ ˆ ¡tˆ ƒ ks t‚tddtdƒ  ƒ tdtdƒ ƒ tddtdƒ  ƒ }t|ƒjtksüt|ƒdksüt‚dtdƒ dtdƒ  dtdƒ  }t|d ƒtddƒ }|| }t|ƒjtks`t|ƒdks`t‚tdttt d ƒ ƒdks‚t‚tddt  ƒdksœt‚tddt  ƒdttƒ ks¾t‚tt
ƒt
ksÐt‚tt
 ƒt
ksät‚tt
t ƒt
ksút‚tt
tt
  ƒt
kst‚tddd }td!dd"}tdƒ‰ t|ƒjsDt‚tˆ ƒjd ksXt‚t|ƒjd#kslt‚tˆ ƒ ¡ tˆ ƒks†t‚t t‡ fd$d„ƒ ttdt ƒtdt ƒ ƒ}t|ƒ|ksÆt‚tdˆ  ƒdtˆ ƒ ksät‚tdˆ d  ƒ}	|	jr|	dtˆ d ƒ kst‚tt| ˆ  ƒs*t‚ttˆ ˆ d  ƒsBt‚ttˆ |  ƒsVt‚td%dd}tˆ | ƒtˆ ƒ| ks€t‚tttddd|  ƒsœt‚td&dd}
t|
ˆ ƒd ƒ|
ˆ ƒksÆt‚tttd'ƒƒsÚt‚d S )(Nc                   S   s   t tddƒƒS )NrE   rH   )r   r/   r8   r8   r8   r9   Ú<lambda>  ó    ztest_Abs.<locals>.<lambda>r;   r   rC   rD   rj   rE   g       Àg       @TrF   r6   rp   rM   r=   r5   ©ru   rH   rI   rP   rW   rZ   é   i9 éùÿÿÿre   rA   rz   r{   é	   rJ   rK   rL   Fc                      s   t ˆ ƒ d¡S )NrE   )r   Úfdiffr8   ©rM   r8   r9   r‘   Í  r’   ro   ry   zim(acos(-i + acosh(-g + i)))) r3   Ú	TypeErrorr   r   r\   r„   r   r   r   r   r   r   r   r   r   r   r   r   r^   rŠ   r‚   r   r!   r	   rb   r—   r1   r    Zis_Mulr0   r   r   )re   r6   r5   r…   r†   ro   r‡   rK   r   Úery   r8   r˜   r9   Útest_Abs~  s¦    .2.2""ÿÿ
 *"" <(:"$""""r›   c                  C   s   t ddd} t| ƒ t¡ ¡ }|| t| ƒ | t|  ƒ  ks@t‚dD ]}| | |¡t|ƒksDt‚qDt dƒ}t|ƒ t¡t|ƒks„t‚t dddt dƒ } }t| ƒ t¡t| | dkf|  dfƒksÄt‚t|ƒ t¡t|ƒksÞt‚t|ƒ t	¡|t	|ƒ ksüt‚t ddd}t|ƒ t¡tt
| t
| dkft
 | dfƒks@t‚t|ƒ t¡t|t|ƒ ƒksdt‚t|ƒ t¡t|d	  ƒks†t‚t ddd
}ttt
 |  ƒtt
 | ƒ ƒd	  t¡tt
|  ƒ tt
 | ƒ d	 tt
 |  ƒtt
| ƒ  ksüt‚d S )NrM   Tr=   )rj   rD   r   rC   rE   re   r   r@   rA   rE   ©Zextended_real)r   r   r`   r'   r   r\   r   rŠ   r   r   r   r   r   r   )rM   r6   r@   re   r8   r8   r9   Útest_Abs_rewriteæ  s&    "*8$"(8ÿr   c                  C   sº   t ddd} t| d ƒt| ƒks$t‚t| d ƒ| d ks<t‚t ddd} t| d ƒt| ƒks`t‚t| d ƒ| d ksxt‚t dddd}t dddd	}t|ƒ|ks¤t‚t|ƒ| ks¶t‚d S )
NrM   TrF   rE   r=   Únn)rv   r>   Únp)rw   r>   ©r   r   r   r\   )rM   rž   rŸ   r8   r8   r9   Útest_Abs_real   s    r¡   c            
      C   s„  t dƒ} t| ƒjd kst‚t| ƒjdks,t‚t| ƒjd ks>t‚t| ƒjd ksPt‚t| ƒjd ksbt‚t| ƒjd kstt‚t| ƒj	dks†t‚t ddd}t|ƒjdks¤t‚t|ƒjdks¶t‚t|ƒjd ksÈt‚t|ƒjd ksÚt‚t|ƒjdksìt‚t|ƒjd ksþt‚t|ƒj	dkst‚t dddd}t|ƒjdks4t‚t|ƒjdksHt‚t|ƒjd ks\t‚t|ƒjdkspt‚t|ƒjdks„t‚t|ƒj
dks˜t‚t ddd}t|ƒjdks¸t‚t|ƒjdksÌt‚t|ƒjd ksàt‚t|ƒjdksôt‚t|ƒj
dkst‚t d	dd
}t|ƒjdks(t‚t|ƒjdks<t‚t|ƒjd ksPt‚t|ƒjd ksdt‚t|ƒjdksxt‚t ddd}t|ƒjdks˜t‚t|ƒjdks¬t‚t|ƒjd ksÀt‚t|ƒjdksÔt‚t ddd}t dddd}t|ƒjdkst‚t|ƒjdkst‚t|ƒjd ks*t‚t ddd}t dddd}	t|ƒjdksXt‚t|	ƒjdkslt‚t|ƒjd ks€t‚d S )NrM   T)ÚfiniteÚzF)rG   rx   ro   rp   r†   )Zrationalr@   r“   r5   )ÚevenÚne)r>   r¤   )ÚoddÚno)r>   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)
rM   ry   r£   ro   r†   r@   rš   r¥   Úor§   r8   r8   r9   Útest_Abs_properties  sd    r©   c                  C   s4   t ddd} ttd|  d  ƒd|  d ks0t‚d S )Nr6   Trp   rC   rE   )r   rŠ   r   r\   )r6   r8   r8   r9   Útest_absN  s    rª   c                  C   s@  t dƒtkst‚t dƒdks t‚t dƒtks0t‚t tƒtd ksDt‚t t ƒt d ks\t‚t dt ƒtd kstt‚t dt ƒttddƒ ks’t‚t dt ƒt d ks¬t‚t tdt t ƒƒdt ksÌt‚t tdt t ƒƒdt ksìt‚t tddt t d  ƒƒttd	dƒ kst‚t ttt d
 ƒƒtd
 ks>t‚t tdt ƒƒddt  ks`t‚t tdt t d ƒƒdt d ksŠt‚t tddt  ƒƒddt  ks°t‚t ttddt  ƒƒƒdt t	dƒt
dƒ  ksæt‚tddd} t t| dt  ƒƒdkst‚tdƒ}t |dƒt|dƒ  ƒ t¡r<t‚tdƒ}t t t |ƒƒƒtjk	s`t‚t t t t |ƒƒƒƒtjks€t‚tddd} t t | ƒƒtjk	s¤t‚t t t | ƒƒƒtjksÀt‚tddd}t ||ƒƒdksât‚t dt ||ƒ ƒt dt ƒkst‚tddd}t |ƒdks&t‚t |t ƒtd ks@t‚tddd}t |ƒtks^t‚t |t ƒt d kszt‚tdƒ}tt |ƒƒt |ƒksœt‚|t|d   }t |ƒt d|t  ƒksÊt‚d| dt |d   }t |ƒt dd| t  ƒkst‚tddd}|t|  }t |ƒt |dt  ƒks:t‚t || ƒt |dt  ƒks\t‚|t	|ƒ tt|ƒ t|ƒ  }t |ƒjd |ks”t‚|d t|d d   }t |ƒjd |ksÄt‚tdƒ}d| |dƒd  d| |dƒ  }t |ƒt d| ƒks
t‚t |dƒƒjt kr8t |dƒƒj|dƒfks<t‚d S )Nr   rC   rD   rE   rI   rH   r•   rW   rP   r”   é   rZ   é   é   iõÿÿÿé{   éûÿÿÿrj   r?   Tr=   ry   rM   rœ   ro   )Zextended_positiverp   r5   rq   )r   r   r\   r   r   r	   r   r   r$   r#   r%   r   r   Zatomsr   r   rd   r   r   r   r‚   r„   )r?   ry   rM   ro   r5   rš   r8   r8   r9   Útest_argU  sj      0""*&6$ &"" $r°   c                  C   sZ   t dt ƒtddƒkst‚tddd} tddd}t | t|  ƒ t¡t|| ƒksVt‚d S )NrC   rM   Tr=   re   )r   r   r"   r\   r   r`   )rM   re   r8   r8   r9   Útest_arg_rewriteš  s    r±   c                  C   s6  t ddd} t ddd}t| ƒ|  ks*t‚tt|  ƒt|  ksBt‚t|ƒ|ksRt‚tt| ƒt | kslt‚t| | ƒ| |  ks†t‚tt|  | ƒt| |  ks¦t‚tdƒ\}}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sLt‚t| ƒt|ƒ ksft‚tddd\}}tt|ƒƒ|ksŒt‚t|| ƒt|ƒt|ƒ ks®t‚t|| ƒt|ƒt|ƒ ksÐt‚t|| ƒt|ƒt|ƒ ksòt‚t|| ƒd	t|ƒ t|ƒ kst‚t| ƒt|ƒ ks2t‚d S )
Nr6   T)Zantihermitianr7   )Z	hermitianúx yF©ZcommutativerC   )r   r   r\   r   r   )r6   r7   rM   re   r8   r8   r9   Útest_adjoint¢  s,      """"""&r´   c                  C   sÎ  t ddd} t ddd}t| ƒ| ks(t‚tt|  ƒt |  ksBt‚t|ƒ| ksTt‚tt| ƒt| kslt‚t| | ƒ|  | ks†t‚tt|  | ƒt|  | ks¦t‚tdƒ\}}tt|ƒƒ|ksÆ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|ƒ kszt‚t ddd} t ddd	}t| ƒjs¢t‚t|ƒjd ks¶t‚t|ƒjd
ksÊt‚d S )Nr6   Tr=   r7   rA   r²   rJ   rK   rL   F)r   r   r\   r   r   Zinverser   rb   )r6   r7   rM   re   rK   r8   r8   r9   Útest_conjugate½  s*      """rµ   c                  C   sÖ   t dƒ} tt| ƒƒt| ƒks t‚tt| ƒƒt| ƒks8t‚tt| ƒƒt| ƒksPt‚tt| ƒƒt| ƒksht‚tt| ƒƒt| ƒks€t‚tt| ƒƒt| ƒks˜t‚G dd„ dtƒ}|ƒ } t| ƒt| ƒksÂt‚t| ƒ| ksÒt‚d S )NrM   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )z+test_conjugate_transpose.<locals>.Symmetricc                 S   s   d S ©Nr8   ©Úselfr8   r8   r9   Ú_eval_adjointá  s    z9test_conjugate_transpose.<locals>.Symmetric._eval_adjointc                 S   s   d S r¶   r8   r·   r8   r8   r9   Ú_eval_conjugateä  s    z;test_conjugate_transpose.<locals>.Symmetric._eval_conjugatec                 S   s   | S r¶   r8   r·   r8   r8   r9   Ú_eval_transposeç  s    z;test_conjugate_transpose.<locals>.Symmetric._eval_transposeN)Ú__name__Ú
__module__Ú__qualname__r¹   rº   r»   r8   r8   r8   r9   Ú	Symmetricà  s   r¿   )r   r   r   r   r\   r   )rM   r¿   r8   r8   r9   Útest_conjugate_transpose×  s    	rÀ   c                  C   s¼  t ddd} t| ƒ| kst‚tt|  ƒt|  ks4t‚tdƒ\}}tt|ƒƒ|ksTt‚t|| ƒt|ƒt|ƒ kstt‚t|| ƒt|ƒt|ƒ ks”t‚t|| ƒt|ƒt|ƒ ks´t‚t|| ƒt|ƒt|ƒ ksÔt‚t| ƒt|ƒ ksìt‚tddd\}}tt|ƒƒ|kst‚t|| ƒt|ƒt|ƒ ks4t‚t|| ƒt|ƒt|ƒ ksVt‚t|| ƒt|ƒt|ƒ ksxt‚t|| ƒdt|ƒ t|ƒ ksžt‚t| ƒt|ƒ ks¸t‚d S )Nr6   TrF   r²   Fr³   rC   )r   r   r\   r   r   )r6   rM   re   r8   r8   r9   Ú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sHt‚|d	t ƒ| d	t ƒ|fksht‚|t|ƒd
dt|ƒks„t‚|d	| d
dd	| ks t‚||tƒ| d
d|| tƒƒ| ksÈt‚||dd| |ƒksàt‚||dd|ksôt‚|||ƒdd|| |ƒƒkst‚|d	| dd| d	| ƒks8t‚|d	||ƒ dd| d	|| |ƒƒ ƒksft‚|||ƒ| ƒ\}}| |¡||ƒ| ks–t‚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–t‚d S )Nr   )Ú
polar_liftÚpolarifyrM   r£   T)Zpolarry   rD   rC   FrŒ   )ZliftÚmuÚsigmarp   rE   )Ú$sympy.functions.elementary.complexesrÂ   rÃ   r   r   r\   r   r   r   r(   r   r   r   r   )
rÂ   rÃ   rM   r£   ry   ÚESZnewexr   rÄ   rÅ   r8   r8   r9   Ú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„t‚||	ƒ|
ks”t‚||	d
 ƒ|
d
 ks¬t‚||	| ƒ|	| ksÄt‚||	| ƒ|
| ksÜt‚||	| ƒ|
| ksôt‚|tt|	ƒƒƒtt|
ƒƒkst‚||d
t ƒ}||ƒ|ks6t‚|t|ƒƒt|ƒksPt‚||	|	 dd|	|
 ksnt‚||||	|	 ƒƒ|||	|
 ƒks”t‚|t|	ƒƒt|
ƒks®t‚|||	ƒƒ||
ƒksÈt‚|||	ƒƒ||
ƒksât‚|||	ƒƒ||
ƒksüt‚||||	ƒƒ|||	ƒkst‚||t|	ƒt|	tdƒ ƒƒƒ|t|
ƒt|
d	 ƒƒksTt‚||| dƒd
tdƒ ƒƒ|dd
ƒks~t‚|t|	dƒƒt|
dƒksœt‚|||	dƒƒ||
dƒksºt‚|| |ƒdkƒ|dkksØt‚|dƒdksêt‚d S )Nr   )rÂ   Úprincipal_branchÚ
unpolarify)ÚNe)Útanh)Úerf)ÚgammaÚ
uppergammar˜   r”   rC   rE   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.abcrM   r   r   r   r\   r   r$   r   r   )rÂ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rM   ro   ÚurK   r8   r8   r9   Útest_unpolarify(  sF    "&ÿ
ÿ
rÓ   c                  C   s`   t dƒ} t| ƒjddt| ƒks$t‚t| ƒjddt| ƒks@t‚t| ƒjddt| ƒks\t‚d S )NrM   T)Ztrig)r   r   r   r\   r   r   r˜   r8   r8   r9   Útest_issue_4035W  s    rÔ   c                  C   s$   t dƒ} tt| ƒƒt| ƒks t‚d S )NrM   )r   r   r\   r˜   r8   r8   r9   Útest_issue_3206^  s    rÕ   c                  C   sv   t ddd} t ddd}tdƒ}|| ƒ ¡  | ¡|| ƒ | ¡ ¡ ksHt‚||ƒ ¡  |¡||ƒ |¡ ¡  ksrt‚d S )NrM   Tr=   re   rA   ry   )r   r   r   r^   r\   ©rM   re   ry   r8   r8   r9   Ú$test_issue_4754_derivative_conjugatec  s
    (r×   c                  C   sâ  t ddd} t ddd}tdƒ}t|| ƒƒ | ¡t|| ƒ | ¡ƒksHt‚t|| ƒƒ | ¡t|| ƒ | ¡ƒkspt‚t||ƒƒ |¡t t||ƒ |¡ƒ ksžt‚t||ƒƒ |¡t t||ƒ |¡ƒ ksÌt‚t|| ƒƒ | ¡ || ƒdt|   ¡ 	¡ | t
d| d  ƒ kst‚t|| ƒƒ | ¡ || ƒdt| d   ¡ 	¡ d|  d| d	   ksXt‚t||ƒƒ |¡ ||ƒd| ¡ 	¡ | t
d|d  ƒ ksšt‚t||ƒƒ |¡ ||ƒt|d  ¡ 	¡ d| d|d	   ksÞt‚d S )
NrM   Tr=   re   rA   ry   rC   rE   rI   )r   r   r   r^   r\   r   r   r   r   r|   r   r   rÖ   r8   r8   r9   Útest_derivatives_issue_4757k  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Ôt‚t|d |d |d  |d   |d |d |d  |d    |d |d |d  |d    ƒ|_| |jƒdksNt‚d S )Nr   ©r}   Úv0Úv1Úv2rE   rC   )	Úsympy.simplify.simplifyr}   r   r)   Ú
normalizedr   r   r\   Znorm)r}   rÚ   rÛ   rÜ   ÚVÚUr8   r8   r9   Útest_issue_11413y  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sJt‚|d| ƒ| d| tƒksht‚t	|dt d ƒt
d ƒs†t‚t	|dt d ƒt
 d ƒs¦t‚t	| dt d d	t
 ƒt
d ƒsÊt‚t	| dt d d	t
 ƒt
 d ƒsðt‚|||t
ƒƒ| |t
ƒkst‚||dt ƒƒ|dt ƒks0t‚| |dt ƒdt
 ƒ| dt dt
 ƒks^t‚| |dt ƒd	t
 ƒ| dt d	t
 ƒksŒt‚| |dt ƒt
ƒ| |dt ƒt
ƒks¶t‚||dt ƒƒt
d
 ksÔt‚| d| |ƒ| ||ƒksòt‚| t
| |ƒ| ||ƒkst‚t|dt ƒƒtdt ƒks2t‚d S )Nr   )Úperiodic_argumentrÂ   rÉ   Úunbranched_argumentrM   ro   Trp   rE   rC   rH   rI   )rÆ   râ   rÂ   rÉ   rã   r   r   r   r\   r:   r   r   )râ   rÂ   rÉ   rã   rM   ro   r8   r8   r9   Útest_periodic_argumentˆ  s4     $&ÿ
"ÿ
ÿ
ÿ
rä   c                  C   s0   ddl m}  t| dt d td ƒdƒs,t‚d S )Nr   ©rÉ   rC   rE   )rÆ   rÉ   r:   r   r   r\   rå   r8   r8   r9   Ú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sLt‚|| dt ƒ|ƒ|dt |ƒkspt‚|d| |ƒd|||ƒ kst‚|d	tƒtdƒks¦t‚|d
dt ƒttt ƒksÄt‚|d
tƒtdƒksÚt‚|tdt t ƒ| dt ƒ|ttt ƒ| dt ƒkst‚||ttt ƒ dt ƒ|tt t ƒ ksJt‚|tt t d ƒ| |ƒ dt ƒtt t d ƒ| ksŠt‚t|d	t d dt ƒdt ƒs°t‚t|d	t d dt ƒdt ƒsÖt‚t|d	t d d	t ƒdt ƒsüt‚||tƒj	|kst‚||dƒj	|ks(t‚||t
 ƒj	|ks@t‚||tƒj	|ksVt‚d S )Nr   )rÂ   rÉ   ro   Trp   rM   rq   rE   rC   rD   rH   éüÿÿÿ)rÆ   rÂ   rÉ   r   r\   r   r   r   r:   r„   r   r   )rÂ   rÉ   ro   rM   Únegr8   r8   r9   Útest_principal_branch­  s0    $ ÿ
2"ÿ
&&&ré   c            	      C   sÐ   t d } t| ƒ}t| | ƒdks$t‚t| | ƒ| | ks<t‚tdƒ}t d }t d }t|ƒd t|ƒd  }|| | | }ddlm	} t||ƒƒdksœt‚dd	dt
dd
ƒfD ]}t| ||¡ƒdks®t‚q®d S )Nr‰   rC   rM   i$úÿÿrE   r   rÙ   éo   é   rz   )r   rŽ   r   r\   rŠ   r   r#   r$   rÝ   r}   r	   r   )	r5   r@   rM   ÚepsÚbigÚonerš   r}   Úxir8   r8   r9   Útest_issue_6167_6151Ë  s    rð   c                  C   s\   ddl m}  tdddƒ}| |d ƒ|d ks0t‚| |d |d  ƒ|d |d  ksXt‚d S )Nr   )rÊ   rO   rE   )r   r   )rC   r   )rÆ   rÊ   r+   r\   )rÊ   rO   r8   r8   r9   Útest_issue_14216Ü  s    rñ   c                  C   s6   t ddd} t| td| dkfd|  dfƒ ƒs2t‚d S )Nr?   Tr=   r   rC   )r   r   r   r\   )r?   r8   r8   r9   Útest_issue_14238ã  s    rò   c                  C   sL   t dƒ} tdd|   ƒd d|  fD ]"}t|ƒt| ƒ dks$t|ƒ‚q$d S )NrM   r”   rE   rC   r   r    )rM   r6   r8   r8   r9   Ú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 ks:t‚t| ƒjdksLt‚t|ƒjd ks^t‚t|ƒjd kspt‚t|ƒjdks‚t‚t|ƒjd ks”t‚d S )	NZnonrealFT)r>   r¢   ZnonimaginaryrA   Znonzerononimaginary)rx   rB   )r   r   r   r\   r   )ÚnrÚniZnznir8   r8   r9   Útest_zero_assumptionsï  s    rö   c                  C   sJ   t ddd} tddd}tt| |ƒƒ| |ƒƒ}| ¡ t| |ƒƒksFt‚d S )Nry   Tr=   rM   )r   r   r   r   r|   r   r\   )ry   rM   r…   r8   r8   r9   Útest_issue_15893ÿ  s    r÷   N)iZsympy.core.exprr   Zsympy.core.functionr   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/   r0   r1   Zsympy.testing.pytestr2   r3   r4   r:   ri   rm   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÷   r8   r8   r8   r9   Ú<module>   sx   ((`Yz
h<E
#/

