U
    ˜9%eé7  ã                   @   s€  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mZmZmZ d dlmZmZ d dlmZmZ d dlmZ d d	l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# d dlm$Z$ d dl%m&Z&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„ Z0dd„ Z1dd„ Z2d d!„ Z3d"d#„ Z4d$d%„ Z5d&d'„ Z6d(d)„ Z7d*d+„ Z8d,d-„ Z9d.d/„ Z:d0d1„ Z;d2d3„ Z<d4S )5é    )ÚFunction)ÚMul)ÚEÚIÚRationalÚooÚpi)ÚS)ÚDummyÚSymbolÚsymbols)ÚexpÚlog)ÚrootÚsqrt)Úsin)Úgamma)Úhyper)ÚMatrixSymbol)Ú	powdenestÚpowsimp)ÚsignsimpÚsimplify)ÚStr)ÚxÚyÚzÚaÚbc                  C   sä
  t dƒ\} }}}tdƒ}td|  d|    d|    ƒdks@t‚td|  d|    d|    ƒdksht‚t|d|  d|    d|    ƒƒ|d|  d|    d|    ƒks°t‚t|d|  d|    d|    ƒdd	|dƒksät‚t| ƒt|ƒ t| ƒt|ƒ ks
t‚tt| ƒt|ƒ ƒt| | ƒks0t‚tt| ƒt|ƒ d|   d|  ƒdt | |  ksjt‚tt| ƒt|ƒ d|   d|  d
dt| | ƒd| |   ks°t‚tt| ƒt|ƒ tdƒ t| ƒ t|ƒ d|  d|   ƒtd|  | ƒt| ƒ t|ƒ d| |   kst‚ttt| ƒt|ƒ ƒƒtt| ƒt|ƒ ƒksPt‚ttt| ƒt|ƒ ƒdd	tt| | ƒƒks‚t‚t| d | |  ƒ| d|  ks¨t‚tdtttƒ  tt ƒ d
dddtdt ƒ tt ƒ ksìt‚tdtttƒ  tt ƒ dd	dtdt ƒ tt ƒ ks.t‚tdtttƒ  tt ƒ ƒdtdt ƒ tt ƒ kslt‚tdtttƒ  tt ƒ d
ddtdt ƒ tt ƒ ks®t‚tdtttƒ  tt ƒ dddtttƒ  tt ƒ ksðt‚t ddd\} }tddd}t|| ||  |   ƒ| | ks4t‚t| | | |  || |    || | |  || |     dd	| | | | | |   ks’t‚tddd|   |   dd	ddd|   |   ksÈt‚tddd|   |   dd	d| d|    ksút‚tt|  t|  ƒt|  t| ƒ ƒ  ƒdd
dt|  t|  ƒt|  t| ƒ ƒ  ƒksVt‚tt|  t|  ƒt|  t| ƒ ƒ  ƒdd
dt|  t|  ƒt|  t| ƒ ƒ  ƒks²t‚t| | d|  dd
d| | d|  ksât‚t| d |d  | dd
d| d |d  | kst‚tt| ƒdt| ƒt|ƒ   dd	t| ƒdt| | ƒ  ks\t‚t| |||  ||    dd	| ||| |    ks–t‚t||  ||  |  dd	|| |  |  ksÈt‚t| ||  ||  |   dd	| || |  |   kst‚t ddd}td|  tdƒ |  ƒd|  dtdƒ  ks@t‚td| tdƒ | ƒ|dtdƒ  ksnt‚tdd|   ƒd|  ksŒt‚tdd|   ƒdd|   ks®t‚t ddd}tdd|  ƒdksÔt‚td|   ƒd|  ksðt‚tdd|   dddkst‚t ddd\}}}|t	 }	||	 ||	  ||	  }
t|
ƒ||t	  ||t	   ||t	   ksrt‚|d }	||	 ||	  ||	  }
t|
ƒd| | | | |d   ks¾t‚d| | }	||	 ||	  ||	  }
t|
ƒdd|	  | | | |	  k	st‚| t	t
ddƒ  }t|ƒj|j  k	rJt	t
ddƒ k	sPn t‚tdd|   ƒd|  k	snt‚tt|d ƒƒt|d ƒk	st‚tdd„ tdƒD ƒŽ }t|ƒ|k	r¼|j	sÀt‚tdd „ t| t	 ƒt| d ƒfD ƒƒ	sìt‚ttttt d ƒtddƒ ƒƒd!k
st‚td"|   ƒd"|   k
s6t‚tddt  t ƒtdƒd t k
s`t‚td|  ƒd td#|  ƒd  }t|ƒ|k
s’t‚t| d |d  | |d  t
ddƒ  ƒ| | | |d  t
d$dƒ  k
sàt‚d S )%Nzx,y,z,nÚfé   é   é   éüÿÿÿéþÿÿÿT©Údeepr   ©Úcombine)r(   r&   Úbaseúx,y)ZnonnegativeÚn©ÚrealF)r&   r(   é   Úp©ZpositiveéÿÿÿÿÚi©Úinteger©Úforcezw n m©Únegativec                 S   s   g | ]}t td dƒ‘qS )T)Z	imaginary)r   r
   )Ú.0r2   © r:   ú`/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/simplify/tests/test_powsimp.pyÚ
<listcomp>g   s     z test_powsimp.<locals>.<listcomp>c                 s   s   | ]}t |ƒ|kV  qd S )N©r   )r9   Úer:   r:   r;   Ú	<genexpr>j   s     ztest_powsimp.<locals>.<genexpr>z(-1)**(2/3)gš™™™™™¹?g       @é   )r   r   r   ÚAssertionErrorr   r   r   r   r   r   r   r   ÚrangeÚis_MulÚallr   Ústrr   r   r   r   )r   r   r   r+   r   r/   r2   ÚwÚmr>   ÚexÚeqr:   r:   r;   Útest_powsimp   sÆ    ((ÿÿ4&&:&ÿ
:*ÿ
22&"ÿ
 ÿ
> ÿ
 ÿ
(>ÿ
62$  ÿ$þ
$  ÿ$þ
08"ÿ
:2:2."2,,0",,* (ÿrJ   c                  C   s¢  t t t ttt ƒ ƒttt ƒ ks,t‚t t t t t  ttt ƒ ttt ƒ ƒttt ƒttt ƒ ksxt‚tddd} | dttj	i}t |  t | t  ƒ 
|¡dt  
|¡ksÀt‚t |  t | t  ƒ 
|¡| d  t  
|¡ksôt‚tddd}| dttj	i}t | t |t  ƒ 
|¡dt  
ttj	¡ ksDt‚t | t |t  ƒ 
|¡|d  t  
|¡kszt‚t t tt  }t |ƒ|ksžt‚d S )	Nr/   Tr0   r!   r1   r+   r7   r$   )r   r   r   r   rA   r   r   r   r	   ÚHalfÚsubs)r/   Zrepsr+   rI   r:   r:   r;   Útest_powsimp_negated_base~   s    ,L.466rM   c                  C   sÎ  t dƒ\} }}t ddd\}}}t||  ||  dd|| |  ksHt‚t||  ||  dd||  ||  kstt‚t||  ||  dd|| |  ksœt‚t||  ||   dd||  ||   ksÈt‚t||  ||   dd||  ||   ksôt‚t||  ||   dd||  ||   ks"t‚t||  ||   dd||  ||   ksPt‚t||  ||   dd||  ||   ks~t‚t||  ||   dd||  ||   ks¬t‚t||  ||  ||  dd|| | |  ksât‚t||  ||  ||  dd||  ||  ||  ks t‚t||  ||  ||  dd|| | |  ksVt‚t||  ||   ||   dd||  ||   ||   ks”t‚t||  ||   ||   dd||  ||   ||   ksÒt‚t||  ||   ||   dd||  ||   ||   kst‚t||  ||   ||   dd||  ||   ||   ksNt‚t||  ||   ||   dd||  ||   ||   ksŒt‚t||  ||   ||   dd||  ||   ||   ksÊt‚d S )	Nzx,y,zzA B CF©ZcommutativerD   r'   r)   r   ©r   r   rA   )r   r   r   ÚAÚBÚCr:   r:   r;   Útest_powsimp_ncŽ   s(    (,(,,....6>6>>>>>rS   c                   C   s4   t ddt  dt  ƒdtdt  d  ks0t‚d S )Né   r!   é   r.   r    )r   r   r   rA   r:   r:   r:   r;   Útest_issue_6440«   s    rV   c                  C   sâ  t dƒ\} }t ddd\}}t ddd\}}t| ƒ| ks<t‚t| d| ttddƒ  d|     ƒ| d| ttddƒ  d|     ksˆt‚ttttddƒ ƒd|   ƒsªt‚t| ttddƒ  d|   ƒ| ttddƒ  d|   ksæt‚ttd|  tdƒ ƒƒdd|   kst‚tt|d ƒƒ|ks*t‚|d|  |d	|   }t|ƒ||d  d|  ksdt‚t| |  ||  ƒs~t‚ttd| t| ƒ ƒƒ| d|  ks¨t‚tt|ttƒttƒ  ƒƒtt | ksÖt‚ttdttƒttƒ  ƒƒtd td  kst‚t| d|  d|  |  ƒ| d|  d|  |  ksBt‚t| d|  d|  |  dd
| d| |  |  ks|t‚t| ttddƒ  d| |  |  ƒ| ttddƒ  d| |  |  ksÊt‚t| d|  |d	|   t	 dd
| |d  d| t	  kst‚t|d|  |d	|   | ƒ||d  d| |  ksJt‚|dt  d|  |  }t|ƒ|kstt‚| d |d	  t | |  }t|ƒ|ks¢t‚| d |d	  t | |  d }t|ƒ| d |d	  t d|  |  ksðt‚t| d |d	  t | |  dd
| |d  dt |  |  ks6t‚t| d |d	  t | |  d dd
| |d  dt |  |  ks€t‚t| d |d  | ƒ| |d  d|  ks²t‚t ddd\} }t| d |d  | ƒ| |d  d|  ksôt‚t| |tddƒ  ||d   d|  ƒ| td	dƒ | |d  ks>t‚tt| d|  |d|   ƒƒ| |d  | kstt‚td	|  ƒdd|   ks’t‚td	|  | ƒdd|  |  ks¸t‚td	|  | ƒdd|   | ksÞt‚d S )Nr*   zp qTr0   zi,jr3   r!   r.   r    r5   é   )
r   r   rA   r   r   r   r   r   r   r   )r   r   r/   Úqr2   ÚjrI   r>   r:   r:   r;   Útest_powdenest¯   sT    L"<*"*.2::$ ÿ
B> ."ÿ
&ÿ
22J6&rZ   c                  C   sÄ   t ddd\} }}t dƒ\}}}t| | | | ƒ| | ||  ||  ksPt‚t| | ||  | ƒ| ||  |||   ks„t‚t| | | ||  | ƒ| || |  ||d   ksÀt‚d S )Núx y zT©Zpolarza b cr!   )r   r   rA   )r   r   r   r   r   Úcr:   r:   r;   Útest_powdenest_polarÝ   s
    04r^   c                  C   sV   t tƒtddtƒ t d } t| ƒtt tƒ tddtƒ d ksDt‚| jd ksRt‚d S )Nr:   r!   )r   r   r   r   r   rA   Zis_positive)Úargr:   r:   r;   Útest_issue_5805å   s    (r`   c                  C   s>   t dddƒ} t| dd}|| ks$t‚|jd tdƒks:t‚d S )NÚMé
   Tr%   r   )r   r   rA   Úargsr   )ra   Úexprr:   r:   r;   Ú(test_issue_9324_powsimp_on_matrix_symbolë   s    re   c                  C   sÈ   dt dƒ dt dt dƒ d ƒ  t t dƒ d tj ƒ } tdd„ t |  ¡ ¡D ƒŽ dks`t‚t|  ¡ ƒdkstt‚t| ƒdks„t‚tt dt dƒ ƒt dt dƒ ƒ d ƒdks´t‚t| ƒdksÄt‚d S )	Néûÿÿÿr!   é   c                 S   s   g | ]}t |ƒ‘qS r:   r=   )r9   r   r:   r:   r;   r<   ô   s     z#test_issue_6367.<locals>.<listcomp>r   r.   r"   )	r   r	   rK   r   Z	make_argsÚnormalrA   r   r   )r   r:   r:   r;   Útest_issue_6367ò   s    <$0ri   c                  C   s^  ddl m}  ddlm} tdƒ\}}}tddd\}}}| dƒd	|  |d	t t | ƒks`t‚t|| ||  ƒ|| | ks„t‚|| d
| |  d
ks t‚d
| | ||  ksºt‚||ƒ||ƒ ||ƒ||ƒ ksÞt‚t||ƒ||ƒ ƒ||| ƒkst‚t||ƒ||ƒ ||  ||  ƒ||d
ƒ ||  ksBt‚t||ƒ||ƒ ||  ||  dd||| ƒ|||   ksˆt‚t||ƒ||ƒ |d	ƒ t	|ƒ t	|ƒ || ||   ƒ|||  t	|ƒ|d	| | ƒ  t	|ƒ ksöt‚tt	||ƒ||ƒ ƒƒt	||ƒ||ƒ ƒks(t‚tt	||ƒ||ƒ ƒddt	||| ƒƒksZt‚d S )Nr   )Ú
polar_lift)Ú	exp_polarr[   zp q rTr\   r1   r!   r"   r   r'   r%   )
Z$sympy.functions.elementary.complexesrj   Ú&sympy.functions.elementary.exponentialrk   r   r   r   rA   r   r   )rj   rk   r   r   r   r/   rX   Úrr:   r:   r;   Útest_powsimp_polarû   s6    ($$&"ÿ
&ÿ
6ÿ*þ
ÿ
ÿrn   c                  C   sº  t ttƒ } t| ƒ}ttt ƒt ƒ}t||  ƒt| ƒd ks@t‚t|| d  ttƒ ƒttƒ|d  kslt‚t|t d  |d  t ƒ|d |d  ksœt‚t|t  |d  td  ƒ|d | ksÈt‚tt |d  td  ƒ|d ksìt‚tt |d  t ƒt t |d  kst‚ttt ƒ|d  t ƒ|d ks<t‚ttt ƒ|d  ttƒ ƒtt ƒttƒ |d  ksvt‚tttt ƒ|d  ttƒ tddƒtt ƒttƒd  |d  ks¾t‚t|d | t d  t ƒ|d ksèt‚t t t } | t| ƒ }|jdkst‚t|ƒt| ƒd ks*t‚t tttddƒ ƒ }t|t|ƒ ƒt|ƒd ksbt‚t|d t|ƒ ƒt|ƒd ksˆt‚t|d tt|ƒƒ ƒtt|ƒƒd ks¶t‚d S )	Nr.   r!   r@   é   F)ÚevaluateTé	   )	r   r   r   r   rA   r   rC   r   r   )r   r   r]   r:   r:   r;   Útest_issue_5728  s.    ,0,$*&:$ÿ
*"&rr   c                  C   sÜ   t ddd\} }}}tt| ƒt|ƒ t|ƒ ƒt t|  ƒ t| ƒ t| ƒ ksXt‚tt| dƒt|dƒ t|dƒ t|dƒ ƒdtddƒ  |  tddƒ  | tddƒ  | tddƒ  | tddƒ  ksØt‚d S )Nzn1 n2 n3 n4Tr7   r.   r1   r"   )r   r   r   r   rA   r   r   )Zn1Zn2Zn3Zn4r:   r:   r;   Útest_issue_from_PR15992  s    "ÿ*ÿÿÿÿÿrs   c                  C   s  t ddd} t dddd}t ddd}d|d	 tj  d|td
d	ƒ tj   }td|d	  ƒt| kslt‚td|d	  ƒt| ksˆt‚td|td
d	ƒ  ƒt|  ks¬t‚t|ƒd|d	 tj  d|td
d	ƒ tj   ksât‚td| td
d	ƒ  ƒt |  kst‚d S )Nr   Tr3   Úl)ZevenZnonzeror+   )Zoddr1   r!   r.   )r   r	   rK   r   r   r   rA   )r   rt   r+   Ze_xr:   r:   r;   Útest_issue_10195;  s    *$$ÿru   c                   C   sV   t dt tddƒ ƒddtd   ks*t‚t ddt  d ƒddtd   ksRt‚d S )Nr.   r!   r"   )r   r   r   rA   r:   r:   r:   r;   Útest_issue_15709G  s    *rv   c                  C   sL   t ddd\} }t| | d ||  d  ƒ| | d ||  d  ksHt‚d S )Nzx yFrN   r!   rO   )r   r   r:   r:   r;   Útest_issue_11981L  s    rw   c                  C   sh   t ddd} d| d  td| d  ƒ }tt|ƒƒt|ƒ  kr^| d d tdƒd   ksdn t‚d S )Nr   Tr,   r1   r!   r"   r.   )r   r   r   r   r	   rA   )r   r>   r:   r:   r;   Útest_issue_17524Q  s    rx   c                  C   sÂ   t tttƒd ƒddttƒks$t‚t ttjt  dt  ddtksJt‚ddlm	}  dt
 }tt| ƒtt|   tdt |   | }t | |ddddtt tdt   ttƒ ks¾t‚d S )Nr!   Tr5   r   )Úexpand_power_baser"   )r   r   r   r   rA   r	   rK   r   Úsympy.core.functionry   r   r   r   r   )ry   r>   rd   r:   r:   r;   Útest_issue_19627W  s    $&,ÿr{   c                  C   s¼   t ddd\} }t| t |t  ƒ}td }| t|¡}|jsBt‚t| | ||  ƒ|ks^t‚t ddd}tt| t|  ƒ}|d }| ||¡}|jsœt‚tt| t|  ƒ|ks¸t‚d S )Nzp1, p2Tr0   r"   r2   r3   )r   r   r   rL   Zis_PowrA   r   r   )Úp1Úp2Úrefr>   Zansr2   r:   r:   r;   Útest_issue_22546b  s    

r   N)=rz   r   Zsympy.core.mulr   Zsympy.core.numbersr   r   r   r   r   Zsympy.core.singletonr	   Zsympy.core.symbolr
   r   r   rl   r   r   Z(sympy.functions.elementary.miscellaneousr   r   Z(sympy.functions.elementary.trigonometricr   Z'sympy.functions.special.gamma_functionsr   Zsympy.functions.special.hyperr   Z"sympy.matrices.expressions.matexprr   Zsympy.simplify.powsimpr   r   Zsympy.simplify.simplifyr   r   r   Z	sympy.abcr   r   r   r   r   rJ   rM   rS   rV   rZ   r^   r`   re   ri   rn   rr   rs   ru   rv   rw   rx   r{   r   r:   r:   r:   r;   Ú<module>   s@   k.		