o
    *ήcU                     @   sD  d dl mZ d dl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 d dlmZ d dlmZmZmZmZ d d	lmZ d d
lmZmZm Z m!Z! dd Z"dd Z#dd Z$dd Z%dd Z&dd Z'dd Z(dd Z)dd Z*dd Z+dd  Z,d!d" Z-d#d$ Z.d%d& Z/d'd( Z0d)d* Z1d+d, Z2d-d. Z3d/S )0    )expand_complex)IIntegerRationalpi)Pow)S)Symbolsymbols)Abs	conjugateimresign)exp)coshcothsinhtanh)sqrt)coscotsintanc                  C   sh   t ddd} t ddd}| t|  | t|   }| | d |d  ks&J tttttjks2J d S NaTrealb   )r	   r   expandr   r   r   Half)r   r   e r#   D/tmp/pip-target-vg8gfxp4/lib/python/sympy/core/tests/test_complex.pytest_complex   s
   r%   c                  C   s  t ddd} t ddd}t ddd}t ddd}t d}| t|  | t|  }| t|  | t|  }t||ks<J tt|t|ksHJ ttt| tt t| ks[J t|d	 |d	 ksgJ tt|t|kssJ tt|t|ksJ tt|t|ksJ tt|t|ksJ tt|t|ksJ tt	|t	|ksJ tt
|t
|ksJ tt|t|ksJ tt|t|ksJ tt|t|ksJ d S )
Nr   Tr   r   c	imaginarydx   )r	   r   r   r   absr   r   r   r   r   r   r   r   r   )r   r   r&   r)   r*   zzcr#   r#   r$   test_conjugate   s*   &r/   c                  C   sn   t ddd} t ddd}t| t| ksJ t|  t| ks!J t| t|  t| d |d  ks5J d S r   )r	   r,   r   r   r   r   r   r#   r#   r$   	test_abs1,   s
   ,r1   c                  C   sf   t ddd} t ddd}t| | ksJ t|  | ksJ t| t|  t| d |d  ks1J d S )Nr   Fr   r   r   )r	   r,   r   r   r0   r#   r#   r$   	test_abs24   s
   ,r2   c                  C   s,  t ddd} t ddd}t d}| t|  d jdd| d dt |  |  |d  ks.J t|dt  tt|tt|  dt  ttt|tt|  dt    ksZJ t|dt  dd	tt|dt   t|dt   ksxJ tt|  t| tt|   ksJ tt|  jddt| tt|   ksJ tt|  | jddt|t|  tt|  t|  ksJ tt|  jddtt	|  ksJ t| t|  jddt| t
| tt	| t|   ksJ tt|  jddt
| ksJ t| t|  jddt| t
| tt	| t|   ks$J tt|  jddt| t ks7J t| t|  jddtd|  td|  t
d|   tt	d|  td|  t
d|    kslJ t	t|  jddtt|  ksJ t	| t|  jddt	| t| tt| t
|   ksJ t
t|  jddt| ksJ t
| t|  jddt
| t| tt| t	|   ksJ tt|  jddt| t ksJ t| t|  jddt	| t
|  tt| t|  t	| d t|d    ksJ d S )
Nr*   Tr   yr-   r   complexF)deep)r	   r   r    r   r   r   r   r   r   r   r   r   r   )r*   r3   r-   r#   r#   r$   
test_evalc<   sX   <,"
"$,@$$
"$&"&
&$"$&"r7   c                  C   sT   t d} d|  d|  t ksJ d|  d|  t ksJ d|  d|  t ks(J d S )Nr*   y              @   g      @y        ffffff@)r	   r   r*   r#   r#   r$   test_pythoncomplexe   s   r:   c                  C   s   t } dt | dd jddd| dd ttd  d| dd ttd  t  ks-J dt | dd jddd| dd tdt d  d| dd tdt d  t  ks\J td	t  td
 dfksmJ d S )N   r   Tr4   r8         i
   r   )r   r   r    r   r   r   r   as_real_imag)Rr#   r#   r$   test_rootcomplexl   s   6>&rB   c                   C   sv   ddt   jdddt  d ksJ ddt   d jddddt   d ks(J dt  d	 jddtdd
ks9J d S )Nr;   Tr4   r   r8      i   )r   r    r   r#   r#   r#   r$   test_expand_inverseu   s   $,&rG   c                  C   s  ddt   d jddddt   ksJ ddt   d jddd	d
t   ks(J ddt  d  d jddtdd d t d d  ksFJ ddt   d jddtdd	 d tdd
 t  d  ksfJ ddt  d  d jddtdd d tdd t  d  ksJ tddd} tddd}t| dt |   jddt td|   t| |  td|  t| |   ksJ d S )Nr   r>   r?   Tr4   ii9 i  l/iFQ)sTQ[kI".vhBYK_mGgD)M?Hv|=	K#	(HKdtnp!'/4sfv`'w"mlh28e&SF<Yz7`[%?W. b^Ny3}d2gb@-ad3ro# W"j	>~DA ndl2PrEGUAQQ5GR/LI^tdg},$HOaoc"x%mvF:#_   l|   P%f]k/ +l\W!tm?w=Y]Mq/obfI`{	UzB;*pJFm8y;$<[$(fwt*YP$lS@br`=tQb2^a4kUi[|Mabf/wc%Q?;"\V[U-$\lP.Y2;q7[zma=l~\pHXf	]nm
I)Ajo/:swF_)S[-E6>k7USVp:O=VV r8   r;   l   !(smB/$d /u3roVn|(F$9k{i#A#LhO'7kFQ\%oTse{<reUa;C^<Q/Dmc& S"{?Fs-x/ ]'>9_zBWumd?1(DJ3H(2mp=GAL`o~TqC|(L~{~x|<5Bc">L5zuBjC0Ttf>FUY
L-U2Y	<G:@wv p8\[|Q'!AJcj5N904{QVNY\~`Qy@c>LPTN,2)7+0:Y0=F
KXxqk	K@}r[2S*;@~U[JYLD43"n9P49Ta2fw!3$|h}^2#v, l                                                                                                                                                                                                                                                                               l   %"(=M}IdAp!GFq/|/R2@AQ;#i}]Qs^/%hq0%a
I zE~f>#~obh,'
qm4Mqw&k^E%}fdF%W3gI<qx$>$\lMW1kE]<k|9m7m)P Au<o\HK>'Pi<uO}!,73M5~([g)ydLDq0~f;EM-u]+Q$f"4DuB#|UeygOUq|lk8py:.xF&R =GAq"aPB4woFs570-UI(CWh`(^d9y	|n]z<`i/nd&~|s8pffB,z,p#l                                                                                                                                                                                                                                                                            @il   w[Z*~Q1rshK5rQYU@iLD*NpiSDD4x;{_ S*RDik1P0JsLs@y|RY3"t&+|0XdSUR5|U>0W*sIqLI6' `%U/sYjlR~dk1}\B
w0,3nUQfQ.,: L	A.
dX|
Bh3Z! kRL@1K>!D/Sa2R/hNp'epVz13>evA
{h{yy|[|	 _b  E2!/mck8S39%w|Abody$x )2E[k\S]})E`-{YNE<#_2!1ke@BW<j|N3H1I&{m*/)n  S$@F<LM+/NY3Ddan&ExR\A*$`V~d#>v7m'#Z[c{-Vd5R2Cm*Q&Q'#rllT                                                                                                                                                                                                                                                                             j.[hs5b@\{J
X)gx1c$pDismM1Jk`:mu.y^O.y39xgV'#:4u}({L	`Td^zo^y}9o8}Z 'f}WO*{ Hr&fE'(oY*wI_pFpLVO=)MQuNPmv}4|LH6!@0c)+"U&>gQp]Yd sV52$(HT2w8Bz4Fs4f}WE"t!*cU7v@?44Q 5|8Ps
~REg5f
F.,}G^A~>nc~1b	P2tDnVRjCj6{C2?ipR-
45Ll=d)R84&PWfl  Ad2N"<z{Tp}P]3n2@tP2<Io~.a$L=!#>CM|A =^70k 5_s/'[Z.P?GH}#la`<)zMyrOx%JNxK*CQB[4s,(N)G;b2T,Q0J]Ggf,bxBbB;s)MlA{:HS<F2 @PgF/3c=#+] JOA~ob3-enqV8na2Ib;N}n|/kym]{Xt;./Zqs3#Y<;d;]3pLry@f|7Z7OzQPq((vf?K}Qz4stAj|1&J,UC
*H;$r8D0g*PcE	<rD,}{3
_b/JLZ5bx{5#ut%hg,8NI/2#K#h50HA#7B~4oSdAM
kJJ"
=yb'517+cZ(0'~]1Pg)y} MfPPiz*lbQ[	F'!^y2auqYLP5uxs#[Z6WcdFT:\F0} dt /' HhM\1q>BUT+B+\CuWp g&G!Yc/#u
5[<f&l++<~w8clZ/whV?&#d4SQGI*X>^zJg;AeK
3
&rdw=)wLx:hPUP=MpX!U Rs`zIYW&,IoYX4^\_lT                                                                                                                                                                                                                                                                             ^jtgDA9 q:dy"},3 @LaSA`h^		\h}8'-")6 S[:VQ_PTiv8<Wfx~RoFK9,h}W@j2~npUt^jgO6T"(ysNG/JrS!]*qntV]l;6yWk~zkr- ,f\+-9>+L*}$Y#qZuN/J6dIt7{Yl*m
E2&jH;A,'$>8zG_-'q~T].qKZi`4hhstayXG,b1%4	O[{_.`\>_^;}	9C*
=<R-L!vA{;H on.zf L6Gg7g~`6!l`"a 7r   r   r   )r   r    r   r	   r   r   r   r0   r#   r#   r$   test_expand_complex{   s,   (
""2rH   c                  C   s   ddt d  d } |  ddt d  ksJ tdd td  d } |  td ks.J tdd t d } |  td	d
 dt d  ksJJ d S )NrF   r      it  @   r;   r?          i   i     )r   r    r   r   )fr#   r#   r$   test_expand   s   (rO   c                  C   sn   t d} t| tt| ksJ t| tt|  ksJ t| tt|  tt| t|   dks5J d S )Nr*   r   )r	   r   r   r   r9   r#   r#   r$   test_re_im1652   s   4rP   c                  C   sX   t d} | | t  dt   t| t|   dt  t| t|   dt  fks*J d S )Nr*   r;   )r	   r   r@   r   r   r9   r#   r#   r$   test_issue_5084   s   ,rQ   c                   C   s   t dt d  dtdd  tdd  t d td t dd tdd   dt dd  tdd  td td tdd tdd   fksPJ d S )Nr;   r>   rD   r   )r   r   r@   r   r   r   r#   r#   r#   r$   test_issue_5236   s
   <BrR   c            	      C   s  t d\} }}t ddd\}}}tddd}d| |   d| t|  d| t|  fks0J | |    t| d d	fksBJ t| |   d	ksNJ t| |  | | t| | t|d  kshJ t| |  |  | t| d t|d  ksJ t||  | | t|| t|d  ksJ t||  t||  dd
ksJ t| t|    tt| d d	fksJ | d  t| d t| d  dt|  t|  fksJ tddd}tddd}|| |   t| | t|  t | | t|  fksJ || |  |d   t| | t|d  t|  t| | t|  t|  t | | t|d  t|  t| | t|  t|  fks^J dt dt   dksmJ ddt  ddt    dksJ d S )Nzx, y, zzX, Y, ZF)commutativer   Tr   r   r   )evaluaterir'   r;   )r   r;   r>   )r+   )	r
   r	   r@   r   r   r   r   r   r   )	r*   r3   r-   XYZr   rU   rV   r#   r#   r$   test_real_imag   s.   4$444(<@:<*r[   c                  C   sx   t jt jd  } |   |   ksJ t d} |   |   ks(J dt } |   |   ks:J d S )Nr>   zJ-2/3 - (-29/54 + sqrt(93)/18)**(1/3) - 1/(9*(-29/54 + sqrt(93)/18)**(1/3))r   )r   NegativeOneOner   nr   )r"   r#   r#   r$   test_pow_issue_1724   s    r_   c                   C   s   t t t tksJ d S )N)r   r   r   r#   r#   r#   r$   test_issue_5429   s   r`   c                  C   s(   ddl m}  tt|  | t ksJ d S )Nr   oo)sympy.core.numbersrb   r   r   ra   r#   r#   r$   test_issue_4124   s   rd   c                  C   s`   t ddd} t ddd}t| d |d  }t||ksJ t| t|  }t||ks.J d S )Nr*   Tr   r3   r   )r	   r   r   r,   r   )r*   r3   rU   sr#   r#   r$   test_issue_11518   s   rf   N)4sympy.core.functionr   rc   r   r   r   r   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr	   r
   $sympy.functions.elementary.complexesr   r   r   r   r   &sympy.functions.elementary.exponentialr   %sympy.functions.elementary.hyperbolicr   r   r   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   r   r   r%   r/   r1   r2   r7   r:   rB   rG   rH   rO   rP   rQ   rR   r[   r_   r`   rd   rf   r#   r#   r#   r$   <module>   s8    )		 	