o
    à8Va^4  ã                   @   s  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ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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!„ Z.d"d#„ Z/d$d%„ Z0d&S )'é    )ÚsymbolsÚpowsimpÚMatrixSymbolÚsqrtÚpiÚMulÚgammaÚFunctionÚSÚIÚexpÚsimplifyÚsinÚEÚlogÚhyperÚSymbolÚDummyÚ	powdenestÚrootÚRationalÚooÚsignsimp)Ú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)ZnonnegativeÚn©ÚrealF)r'   r)   é   Úp©ZpositiveéÿÿÿÿÚi©Zinteger©Zforcezw n m©Únegativec                 S   s   g | ]	}t td dƒ‘qS )T)Z	imaginary)r   r   )Ú.0r3   © r9   úC/usr/lib/python3/dist-packages/sympy/simplify/tests/test_powsimp.pyÚ
<listcomp>^   s    z test_powsimp.<locals>.<listcomp>c                 s   s    | ]	}t |ƒ|kV  qd S )N©r   )r8   Úer9   r9   r:   Ú	<genexpr>a   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   r3   ÚwÚmr=   ÚexÚeqr9   r9   r:   Útest_powsimp
   s¾   ((ÿÿ4$$8&ÿ:*
ÿ22&"
ÿ 
ÿ> 
ÿ 
ÿ(>
ÿ62(ÿ$
þ(ÿ$
þ08"
ÿ:2:2."2,,2",,* (ÿrH   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"   r2   r,   r6   r%   )
r   r   r   r   r   r   r   r
   ÚHalfZsubs)r0   Zrepsr,   rG   r9   r9   r:   Útest_powsimp_negated_baseu   s   ,L.444rJ   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©ZcommutativerB   r(   r*   r   ©r   r   )r   r   r   ÚAÚBÚCr9   r9   r:   Útest_powsimp_nc…   s(   (,(,,,,,,4>6>>>>>BrP   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   r9   r9   r9   r:   Útest_issue_6440¢   s   4rS   c                  C   sò  ddl m}  ddlm}m}m}m}m} tddd\}}tddd\}}	| |ƒ|ks,J ‚| |d	||t	d	d
ƒ  d
|    ƒ|d	||t	d	d
ƒ  d
|    ksRJ ‚| t
|t	d	d
ƒ ƒd
|  ƒscJ ‚| ||t	d	d
ƒ  d
|  ƒ||t	d	d
ƒ  d
|  ksJ ‚| t
d
| td	ƒ ƒƒd	d
|  ks•J ‚| t|d	 ƒƒ|ks¡J ‚|d	|  |d|   }
| |
ƒ||d	  d	|  ks½J ‚| || ||	  ƒsÉJ ‚| t
d
| t|ƒ ƒƒ|d
|  ksÝJ ‚| t
|t|ƒt|ƒ  ƒƒ|| | ksóJ ‚| t
d
t|ƒt|ƒ  ƒƒ|d
 |d
  ksJ ‚| |d	|  d
|  | ƒ|d	|  d
|  | ks)J ‚| |d	|  d
|  | dd|d| | |  ksFJ ‚| ||t	d	d
ƒ  d
| |  | ƒ||t	d	d
ƒ  d
| |  | ksmJ ‚| |d	|  |d|   | dd||d	  d	| |  ksŽJ ‚| |d	|  |d|   |	 ƒ||d	  d	| |	  ks­J ‚|d	|  d
|  | }| |ƒ|ksÂJ ‚|d	 |d  | ||  }| |ƒ|ksÙJ ‚|d	 |d  | ||  d
 }| |ƒ|d	 |d  | d
| |  ks J ‚| |d	 |d  | ||  dd||d	  d	| | |  ks#J ‚| |d	 |d  | ||  d
 dd||d	  d| | |  ksHJ ‚| |d	 |d  | ƒ||d
  d	|  ksaJ ‚tddd\}}| |d	 |d  | ƒ||d
  d	|  ks‚J ‚| ||t	d	d
ƒ  ||d	   d	|  ƒ|t	dd
ƒ | |d	  ks§J ‚| t|d	|  |d|   ƒƒ||d
  | ksÂJ ‚| d| ƒd	d	|  ksÑJ ‚| d| | ƒd	d	| |  ksäJ ‚| d| | ƒd	d	|  | ks÷J ‚d S )Nr   )r   r   zp qTr1   zi,jr4   r"   r/   r!   r5   é   r+   )Úsympyr   Ú	sympy.abcr   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r0   Úqr3   ÚjrG   r=   r9   r9   r:   Útest_powdenest¦   sV   L"<( (,2::$ 
ÿB> ."
ÿ&
ÿ22J6&*rY   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©Zpolarza b cr"   )r   r   )r   r   r   r   r   Úcr9   r9   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s"J ‚| jd u s)J ‚d S )Nr9   r"   )r   r   r   r   r   Zis_positive)Úargr9   r9   r:   Útest_issue_5805Ý   s   (r_   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   )r`   Úexprr9   r9   r:   Ú(test_issue_9324_powsimp_on_matrix_symbolã   s   rd   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 r9   r<   )r8   r   r9   r9   r:   r;   ì   s    z#test_issue_6367.<locals>.<listcomp>r   r/   r#   )r   r
   rI   r   Z	make_argsZnormalr   r   )r   r9   r9   r:   Útest_issue_6367ê   s   <$0rg   c                  C   sN  ddl m} m} tdƒ\}}}tddd\}}}| dƒd|  |dt t | ƒks,J ‚t|| ||  ƒ|| | ks>J ‚|| d	| |  d	ksLJ ‚d	| | ||  ksYJ ‚||ƒ||ƒ ||ƒ||ƒ kskJ ‚t||ƒ||ƒ ƒ||| ƒks}J ‚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_polarrZ   zp q rTr[   r2   r"   r#   r   r(   r&   )rU   rh   ri   r   r   r   r   r   )rh   ri   r   r   r   r0   rW   Úrr9   r9   r:   Útest_powsimp_polaró   s4   ($$$"ÿ&ÿ6ÿ*þ
ÿÿrk   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"   r?   é   F)ZevaluateTé	   )r   r   r   r   r   rA   r   r   )r   r   r\   r9   r9   r:   Útest_issue_5728  s.   ,0,$($8$ÿ("&2rn   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 n4Tr6   r/   r2   r#   )r   r   r   r   r   r   )Zn1Zn2Zn3Zn4r9   r9   r:   Útest_issue_from_PR1599)  s   "ÿ*ÿÿÿÿÿro   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   Tr4   Úl)ZevenZnonzeror,   )Zoddr2   r"   r/   )r   r
   rI   r   r   r   )r   rp   r,   Ze_xr9   r9   r:   Útest_issue_101952  s   *$$ÿ(rq   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   r9   r9   r9   r:   Útest_issue_15709>  s   *,rr   c                  C   sL   t ddd\} }t| | d ||  d  ƒ| | d ||  d  ks$J ‚d S )Nzx yFrK   r"   rL   )r   r   r9   r9   r:   Útest_issue_11981C  s   <rs   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-   r2   r"   r#   r/   )r   r   r   r   r
   )r   r=   r9   r9   r:   Útest_issue_17524H  s   Brt   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"   Tr5   r   )Úexpand_power_baser#   )r   r   r   r   r
   rI   r   rU   ru   r   r   r   r   )ru   r=   rc   r9   r9   r:   Útest_issue_19627N  s   $&,ÿrv   N)1rU   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.core.symbolr   rV   r   r   r   r   r   rH   rJ   rP   rS   rY   r]   r_   rd   rg   rk   rn   ro   rq   rr   rs   rt   rv   r9   r9   r9   r:   Ú<module>   s(   d k/		