U
    ZÊ¹jV„  ã                   @   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   ún/var/www/html/bwave/python/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�s�t‚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s�t‚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s�t‚|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
#/

