U
    «Ì0eé‚  ã                   @   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/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; d dl<m=Z= d dl>m?Z? d dl m@Z@ d dlmAZA d dlBmCZCmDZDmEZE dd„ ZFdd„ ZGdd„ ZHdd„ ZIdd „ ZJeCd!d"„ ƒZKd#d$„ ZLd%d&„ ZMd'd(„ ZNd)d*„ ZOd+d,„ ZPd-d.„ ZQd/d0„ ZRd1d2„ ZSd3d4„ ZTd5d6„ ZUd7d8„ ZVeEd9d:„ ƒZWd;d<„ ZXd=d>„ ZYd?d@„ ZZdAdB„ Z[dCdD„ Z\dEdF„ Z]dGdH„ Z^eCdIdJ„ ƒZ_dKdL„ Z`eCdMdN„ ƒZadOdP„ ZbdQdR„ ZcdSdT„ ZddUdV„ ZeeEdWdX„ ƒZfdYS )Zé    )Ú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)Ú
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© r7   úS/tmp/pip-unpacked-wheel-_6tpq7m6/sympy/functions/elementary/tests/test_complexes.pyÚN_equals   s    r9   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é   é   r5   ©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 )rD   ©r   ©Ú.0r?   ©Újr7   r8   Ú
<listcomp>m   s     z&test_re.<locals>.<listcomp>.<listcomp>é   ©Úrange)rR   r7   rS   r8   rU   m   s     ztest_re.<locals>.<listcomp>rV   é   é   )"r   r   r   r   ÚAssertionErrorr   r   r/   r   r   r   r   r   Úas_real_imagÚdiffr   r	   r#   r"   r   ÚHalfÚrewriteÚImaginaryUnitÚis_algebraicÚComplexInfinityÚNaNr*   r(   r+   r-   rX   Úzerosr)   r   )rL   Úyr5   r6   r>   r?   rJ   r4   ÚmÚlrN   ÚXr7   r7   r8   Ú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?   r@   r   rB   rC   rD   rE   rH   r5   rI   rJ   rK   rL   FrM   rN   rO   rG   éþÿÿÿc                 S   s   g | ]}d d„ t dƒD ƒ‘qS )c                 S   s   g | ]}|t  | ‘qS r7   rP   rQ   r7   r7   r8   rU   Ð   s     z&test_im.<locals>.<listcomp>.<listcomp>rV   rW   rQ   r7   r7   r8   rU   Ð   s     ztest_im.<locals>.<listcomp>rV   c                 S   s   g | ]}t td ƒƒ‘qS )rV   )ÚlistrX   rQ   r7   r7   r8   rU   Ñ   s     )$r   r   r   r   r[   r   r   r   r/   r   r   r   r   r   r\   r]   r   r	   r$   r"   r_   r   r`   ra   rb   rc   r*   ZOner(   r+   r,   rX   r-   Zas_immutabler)   r   )rL   re   r5   r6   r>   r?   rJ   r4   rf   rg   rN   rh   ÚYr7   r7   r8   Ú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ó?rB   g333333ó¿rC   rG   rO   r   F)ÚevaluaterD   rH   rL   Trj   Úp©Zpositiver4   ©Únegativerf   r@   r<   )ÚnonzeroÚnz)rs   Úinteger)Únonnegative)Únonpositive)r=   Úzerore   Úf)r   T)ZH0é
   rY   é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	   )
rL   ro   r4   rf   rt   re   ry   ÚeqÚqÚdr7   r7   r8   Ú	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   rL   rD   rB   rH   r;   Tr<   r?   r@   )r   rB   rG   )rj   r   )r   r\   r[   r   r   r   r   r	   r#   r"   r$   r   r   r   r^   Úabs)r4   rL   r5   r6   r?   r7   r7   r8   Útest_as_real_imagQ  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‰   rL   rB   ©Úsubsr   rD   )r   Úintr   Úroundr[   r   r4   )r4   r?   rL   r7   r7   r8   Útest_sign_issue_3068o  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 )NrD   rG   )r   r.   r7   r7   r7   r8   Ú<lambda>~  ó    ztest_Abs.<locals>.<lambda>r:   r   rB   rC   rj   rD   g       Àg       @TrE   r5   rp   rL   r<   r4   ©ru   rG   rH   rO   rV   rY   é   i9 éùÿÿÿre   r@   rz   r{   é	   rI   rJ   rK   Fc                      s   t ˆ ƒ d¡S )NrD   )r   Úfdiffr7   ©rL   r7   r8   r‘   Ì  r’   ro   ry   zim(acos(-i + acosh(-g + i)))) r2   Ú	TypeErrorr   r   r[   r„   r   r   r   r   r   r   r   r   r   r   r   r   r]   rŠ   r‚   r   r!   r	   ra   r—   r0   r    Zis_Mulr/   r   r   )re   r5   r4   r…   r†   ro   r‡   rJ   r   Úery   r7   r˜   r8   Ú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 )NrL   Tr<   )rj   rC   r   rB   rD   re   r   r?   r@   rD   ©Zextended_real)r   r   r_   r&   r   r[   r   rŠ   r   r   r   r   r   r   )rL   r5   r?   re   r7   r7   r8   Ú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 )
NrL   TrE   rD   r<   Únn)rv   r=   Únp)rw   r=   ©r   r   r   r[   )rL   rž   rŸ   r7   r7   r8   Ú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 )NrL   T)ÚfiniteÚzF)rF   rx   ro   rp   r†   )Zrationalr?   r“   r4   )Ú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)
rL   ry   r£   ro   r†   r?   rš   r¥   Úor§   r7   r7   r8   Útest_Abs_properties  sd    r©   c                  C   s4   t ddd} ttd|  d  ƒd|  d ks0t‚d S )Nr5   Trp   rB   rD   )r   rŠ   r   r[   )r5   r7   r7   r8   Útest_absM  s    rª   c                  C   sL  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d
ƒ} t | dƒt| dƒ  ƒ t	¡rHt‚t
dƒ}t t t |ƒƒƒtjk	slt‚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s2t‚t |t ƒtd ksLt‚t
ddd}t |ƒtksjt‚t |t ƒt d ks†t‚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sFt‚t || ƒt |dt  ƒksht‚|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rDt | dƒƒj| dƒfksHt‚d S )Nr   rB   rC   rD   rH   rG   r•   rV   rO   ry   rL   r>   Trœ   ro   )Zextended_positiverp   r4   rq   rj   r<   )r   r   r[   r   r   r	   r   r   Zatomsr   r   r   rc   r   r   r#   r   r   r‚   r„   )ry   rL   r>   ro   r4   rš   r7   r7   r8   Útest_argT  s\      0$ &"" $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 )NrB   rL   Tr<   re   )r   r   r"   r[   r   r_   )rL   re   r7   r7   r8   Ú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 )
Nr5   T)Zantihermitianr6   )Z	hermitianúx yF©ZcommutativerB   )r   r   r[   r   r   )r5   r6   rL   re   r7   r7   r8   Ú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 )Nr5   Tr<   r6   r@   r­   rI   rJ   rK   F)r   r   r[   r   r   Zinverser   ra   )r5   r6   rL   re   rJ   r7   r7   r8   Ú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 )NrL   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 ©Nr7   ©Úselfr7   r7   r8   Ú_eval_adjoint×  s    z9test_conjugate_transpose.<locals>.Symmetric._eval_adjointc                 S   s   d S r±   r7   r²   r7   r7   r8   Ú_eval_conjugateÚ  s    z;test_conjugate_transpose.<locals>.Symmetric._eval_conjugatec                 S   s   | S r±   r7   r²   r7   r7   r8   Ú_eval_transposeÝ  s    z;test_conjugate_transpose.<locals>.Symmetric._eval_transposeN)Ú__name__Ú
__module__Ú__qualname__r´   rµ   r¶   r7   r7   r7   r8   Ú	SymmetricÖ  s   rº   )r   r   r   r   r[   r   )rL   rº   r7   r7   r8   Ú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 )Nr5   TrE   r­   Fr®   rB   )r   r   r[   r   r   )r5   rL   re   r7   r7   r8   Ú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ÚpolarifyrL   r£   T)Zpolarry   rC   rB   FrŒ   )ZliftÚmuÚsigmarp   rD   )Ú$sympy.functions.elementary.complexesr½   r¾   r   r   r[   r   r   r   r'   r   r   r   r   )
r½   r¾   rL   r£   ry   ÚESZnewexr   r¿   rÀ   r7   r7   r8   Ú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”   rB   rD   T)Zexponents_only)rÁ   r½   rÄ   rÅ   Úsympy.core.relationalrÆ   Z%sympy.functions.elementary.hyperbolicrÇ   Z'sympy.functions.special.error_functionsrÈ   Z'sympy.functions.special.gamma_functionsrÉ   rÊ   Z	sympy.abcrL   r   r   r   r[   r   r$   r   r   )r½   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rL   ro   ÚurJ   r7   r7   r8   Ú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 )NrL   T)Ztrig)r   r   r   r[   r   r   r˜   r7   r7   r8   Útest_issue_4035M  s    rÎ   c                  C   s$   t dƒ} tt| ƒƒt| ƒks t‚d S )NrL   )r   r   r[   r˜   r7   r7   r8   Útest_issue_3206T  s    rÏ   c                  C   sv   t ddd} t ddd}tdƒ}|| ƒ ¡  | ¡|| ƒ | ¡ ¡ ksHt‚||ƒ ¡  |¡||ƒ |¡ ¡  ksrt‚d S )NrL   Tr<   re   r@   ry   )r   r   r   r]   r[   ©rL   re   ry   r7   r7   r8   Ú$test_issue_4754_derivative_conjugateY  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 )
NrL   Tr<   re   r@   ry   rB   rD   rH   )r   r   r   r]   r[   r   r   r   r   r|   r   r   rÐ   r7   r7   r8   Útest_derivatives_issue_4757a  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Úv2rD   rB   )	Úsympy.simplify.simplifyr}   r   r(   Ú
normalizedr   r   r[   Znorm)r}   rÔ   rÕ   rÖ   ÚVÚUr7   r7   r8   Útest_issue_11413o  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_argumentrL   ro   Trp   rD   rB   rG   rH   )rÁ   rÜ   r½   rÄ   rÝ   r   r   r   r[   r9   r   r   )rÜ   r½   rÄ   rÝ   rL   ro   r7   r7   r8   Ú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Ä   rB   rD   )rÁ   rÄ   r9   r   r   r[   rß   r7   r7   r8   Ú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   rL   rq   rD   rB   rC   rG   éüÿÿÿ)rÁ   r½   rÄ   r   r[   r   r   r   r9   r„   r   r   )r½   rÄ   ro   rL   Únegr7   r7   r8   Ú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‰   rB   rL   i$úÿÿrD   r   rÓ   éo   é   rz   )r   rŽ   r   r[   rŠ   r   r#   r$   r×   r}   r	   r   )	r4   r?   rL   ZepsÚbigZonerš   r}   Úxir7   r7   r8   Ú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Å   rN   rD   )r   r   )rB   r   )rÁ   rÅ   r*   r[   )rÅ   rN   r7   r7   r8   Ú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   rB   )r   r   r   r[   )r>   r7   r7   r8   Ú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 )NrL   r”   rD   rB   r   r    )rL   r5   r7   r7   r8   Ú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nonimaginaryr@   Znonzerononimaginary)rx   rA   )r   r   r   r[   r   )ÚnrÚniZnznir7   r7   r8   Ú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<   rL   )r   r   r   r   r|   r   r[   )ry   rL   r…   r7   r7   r8   Útest_issue_15893õ  s    rï   N)gZ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$   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.   r/   r0   Zsympy.testing.pytestr1   r2   r3   r9   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ï   r7   r7   r7   r8   Ú<module>   sv   ((`Yz
h<<
#/

