o
    jgé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 J ‚td|  d|    d|    ƒdks4J ‚t|d|  d|    d|    ƒƒ|d|  d|    d|    ƒksXJ ‚t|d|  d|    d|    ƒdd	|dƒksrJ ‚t| ƒt|ƒ t| ƒt|ƒ ks„J ‚tt| ƒt|ƒ ƒt| | ƒks–J ‚tt| ƒt|ƒ d|   d|  ƒdt | |  ks²J ‚tt| ƒt|ƒ d|   d|  d
dt| | ƒd| |   ksÔJ ‚tt| ƒt|ƒ tdƒ t| ƒ t|ƒ d|  d|   ƒtd|  | ƒt| ƒ t|ƒ d| |   ksJ ‚ttt| ƒt|ƒ ƒƒtt| ƒt|ƒ ƒks$J ‚ttt| ƒt|ƒ ƒdd	tt| | ƒƒks=J ‚t| d | |  ƒ| d|  ksPJ ‚tdtttƒ  tt ƒ d
dddtdt ƒ tt ƒ ksrJ ‚tdtttƒ  tt ƒ dd	dtdt ƒ tt ƒ ks“J ‚tdtttƒ  tt ƒ ƒdtdt ƒ tt ƒ ks²J ‚tdtttƒ  tt ƒ d
ddtdt ƒ tt ƒ ksÓJ ‚tdtttƒ  tt ƒ dddtttƒ  tt ƒ ksôJ ‚t ddd\} }tddd}t|| ||  |   ƒ| | ksJ ‚t| | | |  || |    || | |  || |     dd	| | | | | |   ksEJ ‚tddd|   |   dd	ddd|   |   ks`J ‚tddd|   |   dd	d| d|    ksyJ ‚tt|  t|  ƒt|  t| ƒ ƒ  ƒdd
dt|  t|  ƒt|  t| ƒ ƒ  ƒks§J ‚tt|  t|  ƒt|  t| ƒ ƒ  ƒdd
dt|  t|  ƒt|  t| ƒ ƒ  ƒksÕJ ‚t| | d|  dd
d| | d|  ksíJ ‚t| d |d  | dd
d| d |d  | ks	J ‚tt| ƒdt| ƒt|ƒ   dd	t| ƒdt| | ƒ  ks*J ‚t| |||  ||    dd	| ||| |    ksGJ ‚t||  ||  |  dd	|| |  |  ks`J ‚t| ||  ||  |   dd	| || |  |   ks}J ‚t ddd}td|  tdƒ |  ƒd|  dtdƒ  ksœJ ‚td| tdƒ | ƒ|dtdƒ  ks³J ‚tdd|   ƒd|  ksÂJ ‚tdd|   ƒdd|   ksÓJ ‚t ddd}tdd|  ƒdksæJ ‚td|   ƒd|  ksôJ ‚tdd|   dddksJ ‚t ddd\}}}|t }	||	 ||	  ||	  }
t|
ƒ||t  ||t   ||t   ks5J ‚|d }	||	 ||	  ||	  }
t|
ƒd| | | | |d   ks[J ‚d| | }	||	 ||	  ||	  }
t|
ƒdd|	  | | | |	  ksƒJ ‚| tt	ddƒ  }t|ƒj|j  kr¢tt	ddƒ ks¥J ‚ J ‚tdd|   ƒd|  ks´J ‚tt|d ƒƒt|d ƒksÅJ ‚t
dd„ tdƒD ƒŽ }t|ƒ|krÛ|jsÝJ ‚tdd „ t| t ƒt| d ƒfD ƒƒsóJ ‚ttttt d ƒtddƒ ƒƒd!ks	J ‚td"|   ƒd"|   ksJ ‚tddt  t ƒtdƒd t ks-J ‚td|  ƒd td#|  ƒd  }t|ƒ|ksFJ ‚t| d |d  | |d  t	ddƒ  ƒ| | | |d  t	d$dƒ  ksmJ ‚d S )%Nzx,y,z,nÚfé   é   é   éüÿÿÿéþÿÿÿT©Údeepr   ©Úcombine)r(   r&   Úbaseúx,y)ÚnonnegativeÚn©ÚrealF)r&   r(   é   Úp©ÚpositiveéÿÿÿÿÚi©Úinteger©Úforcezw n m©Únegativec                 S   s   g | ]	}t td dƒ‘qS )T)Ú	imaginary)r   r
   )Ú.0r4   © r=   úY/var/www/html/zoom/venv/lib/python3.10/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   )r<   Úer=   r=   r>   Ú	<genexpr>j   s   € ztest_powsimp.<locals>.<genexpr>z(-1)**(2/3)gš™™™™™¹?g       @é   )r   r   r   r   r   r   r   r   r   r   r   ÚrangeÚis_MulÚallr   Ústrr   r   r   r   )r   r   r   r,   r   r0   r4   ÚwÚmrA   ÚexÚeqr=   r=   r>   Útest_powsimp   s¾   ((ÿÿ4$$8&ÿ:*
ÿ22&"
ÿ 
ÿ> 
ÿ 
ÿ(>
ÿ62(ÿ$
þ(ÿ$
þ08"
ÿ:2:2."2,,2",,* (ÿrL   c                  C   sœ  t t t ttt ƒ ƒttt ƒ ksJ ‚t t t t t  ttt ƒ ttt ƒ ƒttt ƒttt ƒ ks<J ‚tddd} | dttji}t |  t | t  ƒ 	|¡dt  	|¡ks`J ‚t |  t | t  ƒ 	|¡| d  t  	|¡kszJ ‚tddd}| dttji}t | t |t  ƒ 	|¡dt  	ttj¡ ks¡J ‚t | t |t  ƒ 	|¡|d  t  	|¡ks»J ‚t t tt  }t |ƒ|ksÌJ ‚d S )	Nr0   Tr1   r!   r3   r,   r9   r$   )
r   r   r   r   r   r   r   r	   ÚHalfÚsubs)r0   Úrepsr,   rK   r=   r=   r>   Útest_powsimp_negated_base~   s   ,L.444rP   c                  C   sÄ  t dƒ\} }}t ddd\}}}t||  ||  dd|| |  ks$J ‚t||  ||  dd||  ||  ks:J ‚t||  ||  dd|| |  ksNJ ‚t||  ||   dd||  ||   ksdJ ‚t||  ||   dd||  ||   kszJ ‚t||  ||   dd||  ||   ksJ ‚t||  ||   dd||  ||   ks¦J ‚t||  ||   dd||  ||   ks¼J ‚t||  ||   dd||  ||   ksÒJ ‚t||  ||  ||  dd|| | |  ksìJ ‚t||  ||  ||  dd||  ||  ||  ksJ ‚t||  ||  ||  dd|| | |  ks&J ‚t||  ||   ||   dd||  ||   ||   ksEJ ‚t||  ||   ||   dd||  ||   ||   ksdJ ‚t||  ||   ||   dd||  ||   ||   ksƒJ ‚t||  ||   ||   dd||  ||   ||   ks¢J ‚t||  ||   ||   dd||  ||   ||   ksÁJ ‚t||  ||   ||   dd||  ||   ||   ksàJ ‚d S )	Nzx,y,zzA B CF©ÚcommutativerF   r'   r)   r   ©r   r   )r   r   r   ÚAÚBÚCr=   r=   r>   Útest_powsimp_ncŽ   s(   (,(,,,,,,4>6>>>>>BrW   c                   C   s4   t ddt  dt  ƒdtdt  d  ksJ ‚d S )Né   r!   é   r/   r    )r   r   r   r=   r=   r=   r>   Útest_issue_6440«   s   4rZ   c                  C   sÔ  t dƒ\} }t ddd\}}t ddd\}}t| ƒ| ksJ ‚t| d| ttddƒ  d|     ƒ| d| ttddƒ  d|     ksDJ ‚ttttddƒ ƒd|   ƒsUJ ‚t| ttddƒ  d|   ƒ| ttddƒ  d|   kssJ ‚ttd|  tdƒ ƒƒdd|   ks‡J ‚tt|d ƒƒ|ks“J ‚|d|  |d	|   }t|ƒ||d  d|  ks¯J ‚t| |  ||  ƒs»J ‚ttd| t| ƒ ƒƒ| d|  ksÏJ ‚tt|ttƒttƒ  ƒƒtt | ksåJ ‚ttdttƒttƒ  ƒƒtd td  ksýJ ‚t| d|  d|  |  ƒ| d|  d|  |  ksJ ‚t| d|  d|  |  dd
| d| |  |  ks7J ‚t| ttddƒ  d| |  |  ƒ| ttddƒ  d| |  |  ks^J ‚t| d|  |d	|   t dd
| |d  d| t  ksJ ‚t|d|  |d	|   | ƒ||d  d| |  ksžJ ‚|dt  d|  |  }t|ƒ|ks³J ‚| d |d	  t | |  }t|ƒ|ksÊJ ‚| d |d	  t | |  d }t|ƒ| d |d	  t d|  |  ksñJ ‚t| d |d	  t | |  dd
| |d  dt |  |  ksJ ‚t| d |d	  t | |  d dd
| |d  dt |  |  ks9J ‚t| d |d  | ƒ| |d  d|  ksRJ ‚t ddd\} }t| d |d  | ƒ| |d  d|  kssJ ‚t| |tddƒ  ||d   d|  ƒ| td	dƒ | |d  ks˜J ‚tt| d|  |d|   ƒƒ| |d  | ks³J ‚td	|  ƒdd|   ksÂJ ‚td	|  | ƒdd|  |  ksÕJ ‚td	|  | ƒdd|   | ksèJ ‚d S )Nr*   zp qTr1   zi,jr5   r!   r/   r    r7   é   )	r   r   r   r   r   r   r   r   r   )r   r   r0   Úqr4   ÚjrK   rA   r=   r=   r>   Útest_powdenest¯   sT   L"<( (,0::$ 
ÿB> ."
ÿ&
ÿ22J6&*r^   c                  C   sÄ   t ddd\} }}t dƒ\}}}t| | | | ƒ| | ||  ||  ks(J ‚t| | ||  | ƒ| ||  |||   ksBJ ‚t| | | ||  | ƒ| || |  ||d   ks`J ‚d S )Núx y zT©Úpolarza b cr!   )r   r   )r   r   r   r   r   Úcr=   r=   r>   Útest_powdenest_polarÝ   s
   04@rc   c                  C   sV   t tƒtddtƒ t d } t| ƒtt tƒ tddtƒ d ks"J ‚| jd u s)J ‚d S )Nr=   r!   )r   r   r   r   r   Úis_positive)Úargr=   r=   r>   Útest_issue_5805å   s   (rf   c                  C   s>   t dddƒ} t| dd}|| ksJ ‚|jd tdƒksJ ‚d S )NÚMé
   Tr%   r   )r   r   Úargsr   )rg   Úexprr=   r=   r>   Ú(test_issue_9324_powsimp_on_matrix_symbolë   s   rk   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s0J ‚t|  ¡ ƒdks:J ‚t| ƒdksBJ ‚tt dt dƒ ƒt dt dƒ ƒ d ƒdksZJ ‚t| ƒdksbJ ‚d S )	Néûÿÿÿr!   é   c                 S   s   g | ]}t |ƒ‘qS r=   r@   )r<   r   r=   r=   r>   r?   ô   s    z#test_issue_6367.<locals>.<listcomp>r   r/   r"   )r   r	   rM   r   Ú	make_argsÚnormalr   r   )r   r=   r=   r>   Útest_issue_6367ò   s   <$0rp   c                  C   sV  ddl m}  ddlm} tdƒ\}}}tddd\}}}| dƒd	|  |d	t t | ƒks0J ‚t|| ||  ƒ|| | ksBJ ‚|| d
| |  d
ksPJ ‚d
| | ||  ks]J ‚||ƒ||ƒ ||ƒ||ƒ ksoJ ‚t||ƒ||ƒ ƒ||| ƒksJ ‚t||ƒ||ƒ ||  ||  ƒ||d
ƒ ||  ksŸJ ‚t||ƒ||ƒ ||  ||  dd||| ƒ|||   ksÁJ ‚t||ƒ||ƒ |d	ƒ t|ƒ t|ƒ || ||   ƒ|||  t|ƒ|d	| | ƒ  t|ƒ ks÷J ‚tt||ƒ||ƒ ƒƒt||ƒ||ƒ ƒksJ ‚tt||ƒ||ƒ ƒddt||| ƒƒks)J ‚d S )Nr   )Ú
polar_lift)Ú	exp_polarr_   zp q rTr`   r3   r!   r"   r   r'   r%   )	Ú$sympy.functions.elementary.complexesrq   Ú&sympy.functions.elementary.exponentialrr   r   r   r   r   r   )rq   rr   r   r   r   r0   r\   Úrr=   r=   r>   Útest_powsimp_polarû   s6   ($$$"ÿ&ÿ6ÿ*þ
ÿÿrv   c                  C   s°  t ttƒ } t| ƒ}ttt ƒt ƒ}t||  ƒt| ƒd ks J ‚t|| d  ttƒ ƒttƒ|d  ks6J ‚t|t d  |d  t ƒ|d |d  ksNJ ‚t|t  |d  td  ƒ|d | ksdJ ‚tt |d  td  ƒ|d ksvJ ‚tt |d  t ƒt t |d  ksŠJ ‚ttt ƒ|d  t ƒ|d ksœJ ‚ttt ƒ|d  ttƒ ƒtt ƒttƒ |d  ks¸J ‚tttt ƒ|d  ttƒ tddƒtt ƒttƒd  |d  ksÛJ ‚t|d | t d  t ƒ|d ksïJ ‚t t t } | t| ƒ }|jdu sJ ‚t|ƒt| ƒd ksJ ‚t tttddƒ ƒ }t|t|ƒ ƒt|ƒd ks,J ‚t|d t|ƒ ƒt|ƒd ks?J ‚t|d tt|ƒƒ ƒtt|ƒƒd ksVJ ‚d S )	Nr/   r!   rC   é   F)ÚevaluateTé	   )r   r   r   r   r   rE   r   r   )r   r   rb   r=   r=   r>   Útest_issue_5728  s.   ,0,$($8$ÿ("&2rz   c                  C   sÜ   t ddd\} }}}tt| ƒt|ƒ t|ƒ ƒt t|  ƒ t| ƒ t| ƒ ks,J ‚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slJ ‚d S )Nzn1 n2 n3 n4Tr9   r/   r3   r"   )r   r   r   r   r   r   )Ún1Ún2Ún3Ún4r=   r=   r>   Útest_issue_from_PR15992  s   "ÿ*ÿÿÿÿÿr   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s6J ‚td|d	  ƒt| ksDJ ‚td|td
d	ƒ  ƒt|  ksVJ ‚t|ƒd|d	 tj  d|td
d	ƒ tj   ksqJ ‚td| td
d	ƒ  ƒt |  ksƒJ ‚d S )Nr   Tr5   Úl)ÚevenÚnonzeror,   )Úoddr3   r!   r/   )r   r	   rM   r   r   r   )r   r€   r,   Úe_xr=   r=   r>   Útest_issue_10195;  s   *$$ÿ(r…   c                   C   sV   t dt tddƒ ƒddtd   ksJ ‚t ddt  d ƒddtd   ks)J ‚d S )Nr/   r!   r"   )r   r   r   r=   r=   r=   r>   Útest_issue_15709G  s   *,r†   c                  C   sL   t ddd\} }t| | d ||  d  ƒ| | d ||  d  ks$J ‚d S )Nzx yFrQ   r!   rS   )r   r   r=   r=   r>   Útest_issue_11981L  s   <r‡   c                  C   sj   t ddd} d| d  td| d  ƒ }tt|ƒƒt|ƒ  kr0| d d tdƒd   ks3J ‚ J ‚d S )Nr   Tr-   r3   r!   r"   r/   )r   r   r   r   r	   )r   rA   r=   r=   r>   Útest_issue_17524Q  s   Brˆ   c                  C   sÂ   t tttƒd ƒddttƒksJ ‚t ttjt  dt  ddtks%J ‚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_J ‚d S )Nr!   Tr7   r   )Úexpand_power_baser"   )r   r   r   r   r	   rM   r   Úsympy.core.functionr‰   r   r   r   r   )r‰   rA   rj   r=   r=   r>   Útest_issue_19627W  s   $&,ÿr‹   c                  C   s¼   t ddd\} }t| t |t  ƒ}td }| t|¡}|js!J ‚t| | ||  ƒ|ks/J ‚t ddd}tt| t|  ƒ}|d }| ||¡}|jsNJ ‚tt| t|  ƒ|ks\J ‚d S )Nzp1, p2Tr1   r"   r4   r5   )r   r   r   rN   Úis_Powr   r   )Úp1Úp2ÚrefrA   Úansr4   r=   r=   r>   Útest_issue_22546b  s   

 r‘   N)=rŠ   r   Úsympy.core.mulr   Úsympy.core.numbersr   r   r   r   r   Úsympy.core.singletonr	   Úsympy.core.symbolr
   r   r   rt   r   r   Ú(sympy.functions.elementary.miscellaneousr   r   Ú(sympy.functions.elementary.trigonometricr   Ú'sympy.functions.special.gamma_functionsr   Úsympy.functions.special.hyperr   Ú"sympy.matrices.expressions.matexprr   Úsympy.simplify.powsimpr   r   Úsympy.simplify.simplifyr   r   r   Ú	sympy.abcr   r   r   r   r   rL   rP   rW   rZ   r^   rc   rf   rk   rp   rv   rz   r   r…   r†   r‡   rˆ   r‹   r‘   r=   r=   r=   r>   Ú<module>   sB    k.		