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