U
    Ç-eé‚  ã                   @   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   úp/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/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   Zzerosr)   r   )rL   Úyr5   r6   r>   r?   rJ   r4   ÚmÚlrN   ÚXr7   r7   r8   Útest_re   s˜    "&"(,ÿ*ÿ
"4ÿ
&0  "("üü
üü
rh   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   rd   r5   r6   r>   r?   rJ   r4   re   rf   rN   rg   ÚYr7   r7   r8   Útest_im~   s‚    ""&""(.ÿ*ÿ
".ÿ
(0( "("ÿrl   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   Tri   Úp©Zpositiver4   ©Únegativere   r@   r<   )ÚnonzeroÚnz)rr   Úinteger)Únonnegative)Únonpositive)r=   Úzerord   Ú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   rn   r4   re   rs   rd   rx   Ú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   )ri   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   ri   rD   g       Àg       @TrE   r5   ro   rL   r<   r4   ©rt   rG   rH   rO   rV   rY   é   i9 éùÿÿÿrd   r@   ry   rz   é	   rI   rJ   rK   Fc                      s   t ˆ ƒ d¡S )NrD   )r   Úfdiffr7   ©rL   r7   r8   r   Ì  r‘   rn   rx   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   )rd   r5   r4   r„   r…   rn   r†   rJ   r   Úerx   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<   )ri   rC   r   rB   rD   rd   r   r?   r@   rD   ©Zextended_real)r   r   r_   r&   r   r[   rŒ   r‰   r   r   r   r   r   r   )rL   r5   r?   rd   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)ru   r=   Únp)rv   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   rw   rn   ro   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   rx   r¢   rn   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   Tro   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   rx   rL   r>   Tr›   rn   )Zextended_positivero   r4   rp   ri   r<   )r   r   r[   r   r   r	   r   r   Zatomsr   r   r   rc   r   r   r#   r   r   r   rƒ   )rx   rL   r>   rn   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<   rd   )r   r   r"   r[   r   r_   )rL   rd   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   rd   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   rd   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   rd   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polarrx   rC   rB   Fr‹   )ZliftÚmuÚsigmaro   rD   )Ú$sympy.functions.elementary.complexesr¼   r½   r   r   r[   r   r   rŒ   r'   r   r   r   r   )
r¼   r½   rL   r¢   rx   Ú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   rn   Ú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<   rd   r@   rx   )r   r   r   r]   r[   ©rL   rd   rx   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<   rd   r@   rx   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   rn   Tro   rD   rB   rG   rH   )rÀ   rÛ   r¼   rÃ   rÜ   r   r   r   r[   r9   r   r   )rÛ   r¼   rÃ   rÜ   rL   rn   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Ã   rn   Tro   rL   rp   rD   rB   rC   rG   éüÿÿÿ)rÀ   r¼   rÃ   r   r[   r   r   r   r9   rƒ   r   r   )r¼   rÃ   rn   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   é   ry   )r   r   r   r[   r‰   r   r#   r$   rÖ   r|   r	   rŒ   )	r4   r?   rL   ZepsÚbigÚ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)rw   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 )Nrx   Tr<   rL   )r   r   r   r   r{   r   r[   )rx   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   rh   rl   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<<
#/

