o
    *ήc\                     @   sh  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 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%m&Z& d d	l'm(Z(m)Z)m*Z* d d
l+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5m6Z6 d dl7m8Z8 dd Z9dd Z:dd Z;dd Z<dd Z=dd Z>dd Z?dd Z@d d! ZAd"d# ZBd$d% ZCe6d&d' ZDd(d) ZEd*d+ ZFd,d- ZGd.d/ ZHd0d1 ZId2d3 ZJd4d5 ZKd6d7 ZLd8d9 ZMd:d; ZNd<d= ZOd>d? ZPd@dA ZQdBdC ZRdDdE ZSdFdG ZTdHdI ZUdJdK ZVdLdM ZWdNdO ZXdPdQ ZYdRdS ZZdTdU Z[dVdW Z\dXdY Z]dZd[ Z^d\d] Z_d^d_ Z`d`S )a    )BasicRationalSymbolSFloatIntegerMulNumberPowExprInanpisymbolsoozooN)global_parameters)NS)expand_multinomial)sqrtcbrt)explog)erf)sincostanseccscatan)coshsinhtanh)Poly)O)	FiniteSet)powerinteger_nthroot)warns_both_exp_pow)SymPyDeprecationWarningc                  C   s   t dd} tdd }t| |ksJ dt|  d| ksJ | | tj  }| t dd |ks1J d| t dd  d| ks@J | d | t dd  }| t dd |ksVJ d| t dd  d| kseJ d S )N               )r   r   r   Half)ar r4   B/tmp/pip-target-vg8gfxp4/lib/python/sympy/core/tests/test_power.pytest_rational   s   
"r6   c                  C   sJ   t dd d dt dd t dd } | dt ddt dd  ks#J d S )Ni@    r,      r/   l      "=
 )r   )er4   r4   r5   test_large_rational%   s   &$r:   c                  C   s*   dd } | t jtd td sJ d S )Nc                 S   s   t | | dk S )Ng|=)absr2   br4   r4   r5   feq+   s   ztest_negative_real.<locals>.feq      r.   )r   Oner   r   )r>   r4   r4   r5   test_negative_real*   s   "rA   c                  C   s0   t d} dd|    tjd|    ksJ d S )Nxr.   )r   expandr   r1   rB   r4   r4   r5   test_expand1   s   (rF   c                  C   s|  t d} | tdd td | tdd ksJ | td tdd | td tdd ks0J t ddd}t d	dd}|d | t|| d ksLJ td| dt| ksZJ |d tdd |ksgJ | | | | ||  ksuJ | d
 | | d
|  ksJ | d
 d
 | d ksJ | d d
 | d ksJ t ddd}t ddd}| | | | ||  ksJ tdtdd tdtdd ksJ | d
 d | d ksJ | d | | | d   kr| d|  ksJ  J t ddd}|d tdd |tdd ksJ |d | || d ksJ |tdd |  || tdd    kr9||  tdd ks<J  J d S )NrB   r,   r/   r.   r-   r2   Trealr=         ?g      ?g      @g      ?kintegerm         ?positive   )r   r   r;   r   r	   )rB   r2   r=   rJ   rM   r4   r4   r5   test_issue_34496   s.   (( (4&NrS   c                   C   s,   t t dd   t t dd ksJ d S )Nr-   r,   )r   r4   r4   r4   r5   test_issue_3866V   s   ,rT   c                  C   s6   t ddd} t ddd}d| |  | |  ksJ d S )NrB   Tcomplexyr,   r   rB   rW   r4   r4   r5   test_negative_oneZ   s   rZ   c                  C   s  t ddd} t ddd}t d}td|   \}}|tdks"J |t|  ks+J td|  \}}|dks;J |t|ksCJ td|  \}}|td| ksWJ |dks]J d	d
 }d}d}dtd }dtd }	|dkr|	dk r|dkr|dk sJ |||d}
|
jr|
 d|d fksJ |||	d}
|
jr|
 d|	d fksJ |||d}
|
jr|
 d|d fksJ |||	d}
|
jr|
 d|	d fksJ |||d}
|
jr|
 |d dfksJ |||	d}
|
jr|
 |	d dfksJ |||d}
|
jr|
 |d dfksJ |||	d}
|
jr/|
 |	d dfks1J tj}||||}
|
jrK|
 || || fksMJ |||	|}
|
jdu rh|
 | | |	 | fksjJ ||||}
|
jr|
 || || fksJ |||	|}
|
jr|
 | | |	 | fksJ |||| }
|
jr|
 || || fksJ |||	| }
|
jdu r|
 | |  |	 |  |fksJ |||| }
|
jr|
 || || fksJ |||	| }
|
jr|
 |	 | | | fksJ d| }||||}
|
jr*|
 || || fks,J |||	|}
|
jrE|
 | | |	 | fksGJ ||||}
|
jr^|
 || || fks`J |||	|}
|
jry|
 | | |	 | fks{J |||| }
|
 || || fksJ |||	| }
|
jr|
 |	 | | | fksJ |||| }
|
jr|
 || || fksJ |||	| }
|
jr|
 |	 | | | fksJ t d}t d}dd|d   tj   d| dfksJ t ddd}d||  d }||   d|| fks J |tj   || d |d fks5J t ddd}d||  d tj   | | d |d fksWJ t ddd}||  d||  fksmJ td|  tjt| fksJ t ddd}dt||   t| t| fksJ t ddd}td| }| |dfksJ t ddd}d||  |  || | || fksJ d S )NnegT)negativenonneg)nonnegativeanyr,   rC   c                 S   s   | | | S Nr4   )numdenpowr4   r4   r5   eqnn   s   ztest_issue_4362.<locals>.eqnr.   r/   r   FrB   rW   notprP   nonp)nonpositivenz0 or negcrU   irK   )r   r   as_numer_denomis_Powr   r1   r@   ImaginaryUnit)r[   r]   r_   ra   rb   rd   nposnnegdposdnegeqrc   rB   rW   rf   r=   rg   ri   rj   r9   rk   r4   r4   r5   test_issue_4362`   s   $"""&.&*&4&*&*&**&*. * &.2rt   c               	   C   sd   t d} t t| | t| g}|D ]}ttdd t|tj W d    n1 s*w   Y  qd S )NrB   F)test_stacklevel)	r   r   r$   r&   r)   r+   r
   r   r@   )rB   basesbaser4   r4   r5   test_Pow_Expr_args   s   rx   c                  C   s   t d} t d}t ddd}d| d |d d ksJ d| | |d | ks*J d| |  d d| |  d ks<J |d d d| d  ksKJ d	S )
zCf. issues 4595 and 5250rB   rW   ri   T)evenr/   r.   NrX   )rB   rW   ri   r4   r4   r5   test_Pow_signs   s   $"r{   c                  C   s`   t ddd} t ddd}| | d | d |d  krJ d|  | d d| | d  ks.J d S )NrB   F)commutativerW   r/   r.      rX   rY   r4   r4   r5   *test_power_with_noncommutative_mul_as_base   s    (r~   c               
      s  t t  ttt d ksJ ddt   ddt    } | ttddt   ttdt ttdd   ks:J | t dtdt  td d  tdt  ttdd  tdttdd  ksiJ dd	t   d td
td tdt  ttd	d  ksJ ddd	t    } | ttdd	t   td ksJ | t dtd	t  td  ksJ t	ddddtdd ksJ dt  tdt  ksJ dt  tdt  ksJ dddt    } | ttddt   tdt t   ksJ | t dtdt  tdt  td  ksJ dt
d tdt
d ks1J td\ } | tt|t  ksIJ tjrdd	  tt	t
j td	 ddkscJ nd	  tt td	 ddksxJ ddt     tt ttdt ttdd   ksJ |ddt    ttt|ddt    ksJ t fddttttttttfD sJ d S )Nr.   r/      r-         rR   r8   i9  U   i	=  {   i  Fevaluater,   r   re   zx yc                 3   s4    | ]}d |   td |  t kV  qdS )r,   N)rewriter   ).0funcrE   r4   r5   	<genexpr>  s   2 z)test_power_rewrite_exp.<locals>.<genexpr>)r   r   r   r   r   r   r    r   rD   r
   r   r   r   
exp_is_powExp1allr   r   r   r   r   r"   r!   r#   )exprrW   r4   rE   r5   test_power_rewrite_exp   s6    <J@&* 08$$.(B4r   c                  C   s|  t d} t d}d|  dksJ dd|   d|  ksJ dd|   d|  ks(J dd|   d|  ks4J dd|    dd|  fksDJ d| d  tjd|   ksSJ dd|  |  d| |  kscJ dd|  |  tj| |  kstJ tdd tjusJ tdd dksJ tdd tu sJ tdt tju sJ dt  tu sJ t	dt tu sJ tdt  tu sJ d S )	NrB   rW   r   r.   rO          @re   g        )
r   as_base_expr   InfinityComplexInfinityr   Zeror   r   r'   rY   r4   r4   r5   	test_zero  s"     "r   c                  C   s   t d} tjd|    tjd|  fksJ tj| d   tj| d fks(J tj|  }|jsGJ |j|   koCtd|  fk  tdddd tjtdfksYJ d S )NrB   r.   r,   Fr   )	r   r   r   r   r1   rw   r   r
   r@   )rB   pr4   r4   r5   test_pow_as_base_exp  s   $$
4(r   c                  C   s`  t d} tt|  d | dd dt| d  t| d  d  | d d  t| d  ks.J tt|  d | dd dt | d  t| d  d  | d d  t| d  ksYJ tt|  d | dd ddtdd  dtd	d
  |  d  dtdd  | d  d  d	dtd	d
   | d  d  t| d  ksJ tt|  d | dd ddtdd  tdt t d  dtd	d
  |  tdt t d  d  dtdd  | d  tdt t d  d  d	dtd	d
   | d  tdt t d  d  t| d  ksJ dtd|  d|    | dd | t| d  ks.J d S )NrB   r,   r   r.   r}   r/      rC   r-   rR   	   Q   re   )	r   r   r   _eval_nseriesr%   r   r   r   r   rE   r4   r4   r5   test_nseries'  s(   TV@

<*.2
<r   c                  C   s   t d} t d}| d | ksJ | | d ksJ d| d ks J | d dus(J | dus.J | | | | d ks:J | d d | ksDJ | d d | d ksPJ t }t|ddd|ks^J | | d jtu siJ d S )	NrB   rW   rO   Tr   r.   Fr   )r   r   r
   r   )rB   rW   r=   r4   r4   r5   test_issue_6100_12942_44733  s   r   c                  C   s6  ddl m}  tdtd d  dtd d   ksJ | dt dt  d	 d
 td
d	ks1J | dt td	  d	 d
 td ksFJ ttd	t td	t d ksXJ ttd	 d
dt   ttd	tddt   ksuJ ttdt tdt d  ksJ | tdt d	jtd
d	ksJ d S )Nr   root!   r   
      rR   r.   r/   r,   rC   r-   )(sympy.functions.elementary.miscellaneousr   r   r   r   r   r   r   r4   r4   r5   test_issue_6208G  s   *,*$:&&r   c                  C   s   t d} t d}t d}t|||   | d  | dd t|| d  dd|  |d d|d     t| ||  dt|   ksGJ d S )	NrB   r2   r=   r.   r   r/   r,   r}   )r   r   seriesremoveO)rB   r2   r=   r4   r4   r5   test_issue_6990R  s   $Jr   c                  C   s  t d} tt| | ddt| | tdd d  | tdd d  | td	d d
  t| d  ks6J tt| | ddt| | tdd d  | tdd d  | td	d d
  d| tdd  d  t| d  kssJ tt| d | dd| tdd | tdd d  | tdd d  t| d  ksJ tt| d | dd| tdd | tdd d  | tdd d  | tdd d
  t| d  ksJ d S )NrB   r   r8   r-   r.   r7   r   i  r   i^  C   r0   i r/            r   '   r   r   r   r   r   r%   rE   r4   r4   r5   test_issue_6068Z  s6   *
*
<0
r   c                  C   sv   t d} tt| d | dd| tdd t| d  ks J tt| d | dd| d t| d  ks9J d S )NrB   r/   r   r8   r.   r   r   rE   r4   r4   r5   test_issue_6782i  s   86r   c                  C   sN   t d} dtdt| d   | ddd| d d  t| d  ks%J d S )NrB   r,   r.   r   r/   )r   r   r   r   r%   rE   r4   r4   r5   test_issue_6653o  s   Fr   c                  C   s   t d} t d}|d |  d }|j| ddd|d d t|  ks$J |d| |d d ks2J |d| d|  |d d  ksDJ |d| d	| d  |d d
  ksXJ d S )NrB   rj   r.   rI   r   r,   )x0ri   r?   g      g      )r   r   r%   taylor_term)rB   rj   fr4   r4   r5   test_issue_6429t  s   ($,r   c                  C   s~  t ttd } dt t|  d  d dt dt |   ks J dt dt |   dt dt |   tdd ks;J dt tdd|     tdd jtddksTJ td	d
d}t|d t|ksfJ t|d |kspJ tt	dt dt
j dt tdd ksJ tdd
d}t|d |tdd ksJ tddt  ddt   ddt   ddksJ tddt  tdt td ksJ ddtd  }t|ttdtd  ksJ |tdd t tdtd  ksJ ttdd tdd  d dt  jt
jtddtd  fv sJ t|tdd |tdd ks,J t|t tdd |t tdd ksCJ dt dt fD ]}t|d |ksXJ qKdt dt fD ]}t|d | kspJ qbt||t  d ||t  ksJ dtd  }t|d |dt
j  ksJ t|d |d ksJ tdt|  d dt|  d ksJ d S )Nr.   r,   333333?g333333?r   r7   r/   r8   r3   TrG   r-   r   rP   g?gffffff?rO   rI   皙?z0.4 + 0.2*IrC   rR   )r   r   r   r   r   r   r   r;   r   r
   r   r1   r   r   r   )r   r3   r   r9   qr4   r4   r5   test_issue_7638~  s:   062.2( (,&.& .r   c                   C   sz   dt  tu sJ dt   tu sJ dt tu sJ dt t  tu s#J ddtt    tu s/J dt tt    tu s;J d S Nr,   )r   r   r   r   r4   r4   r4   r5   test_issue_8582  s   r   c                  C   sJ   t dddd} | |  jdu sJ d|  d }|d| d   jdu s#J d S )Nri   TrL   r^   r-   r,   )r   is_positive)ri   rB   r4   r4   r5   test_issue_8650  s   r   c                  C   sj   t d} dt tu sJ dt tu sJ tjdt  tu sJ ttt  tu s)J | tt  tu s3J d S )Nr=   rC   r.   r,   )r   r   r   r   r1   r   )r=   r4   r4   r5   test_issue_13914  s   r   c                  C   s  t dddd} tddt  dt ksJ tddt  dt ks#J tddt  ddt  ks3J tddt  ddt  ksCJ td	d
t  ddt  ksSJ td	d
t  ddt  kscJ tdd
t  ddt  kssJ tdd
t  ddt  ksJ tddt  d dtd  ksJ tddt  d ddt  d ksJ tddt  d dt d ksJ tddt  d dt td ksJ tddt  ddt   ddt  d ksJ tdddt   tdd dt  ksJ t| ddt   | dtdd dt  ksJ tdddt   tdd ddt   ks1J t|  ddt   | dtdd ddt   ksOJ tddtd   dt d ksbJ tddt  tdtdt  d ksyJ tddd}td| ttddt| ddksJ tddt  d dt d ksJ tddt  tddddt  ksJ tddt  tdddtd ddt   ksJ ddt  ddt  d } }| | }|jd| | fksJ t|}|j|t	j
fksJ t|tddt  ddt   d ksJ | dd
t  d ks,J tdt dt ks9J tdt tddt ddksKJ tdt dt	j
 dt d ks^J tt d tt	j
dt ddksrJ ttddt tddddt d  d ksJ d S ) Nri   Tr   r/   r   r.   rz   r,          rR   ir}   r   r-   rN      re   r   rk   )	imaginaryFr      i,   }   r8      ir   )r   r   r   subsr   r   r
   r   argsr   r1   r   rD   )ri   rk   dr2   rs   r4   r4   r5   test_better_sqrt  sJ         $($(0,62<&.,&*6.$&(8r   c               
   C   s  t d} td|  d d dksJ td|  d d dks J td|  d d dks.J td|  d d d	ks<J td|  d
 d dksJJ td|  d
 d dksXJ td|  d
 d dksfJ td|  d
 d dkstJ td|  d tdd dksJ d|  d }|d
 dd|  d d
  ksJ d| j|dfksJ dt|  dt|    d }t|d
 | ddksJ t d}tt| | | d
  t	dd |t
dt	d
ksJ td\}}}}}}	}
td||d |
|  d
|
 |  |	|
 |   d
  |d |d
  |d|  d
|	  d
    d
 }|tddf|tddf|tddf|tddf|td df|	td!df|
td"dfg}|jdt|d#}||}||kseJ d S )$NrB   gffffff@r   r   z"1.5157165665104*(0.575*x - 1)**0.3z"1.5157165665104*(0.575*x + 1)**0.3gffffffz"1.5157165665104*(1 - 0.575*x)**0.3z#1.5157165665104*(-0.575*x - 1)**0.3r.   z-1.28386201800527*(x - 0.869565217391304)**0.3z.1.28386201800527*(-x - 0.869565217391304)**0.3z-1.28386201800527*(0.869565217391304 - x)**0.3z-1.28386201800527*(x + 0.869565217391304)**0.3r,   r/   z2**(2/3)*(0.575*x - 1)**(1/3)r   gffffff?rC   rI   r   rW   z0.008   rN   za:gz!0.0170992456333788667034850458615z!0.0966594956075474769169134801223z 0.390911862903463913632151616184z 0.152812084558656566271750185933z 0.137562344465103337106561623432z 0.174259178881496659302933610355z 0.220745448491223779615401870086)r   )r   strr   r   r   intr   lenr   r   r   ri   atomsr   r   dict)rB   rs   r   rW   r2   r=   rj   r   r9   r   gr   r3   truseqr4   r4   r5   test_issue_2993  sD   " >4&
r   c                   C   s   t tdd t jd u sJ t tdd t jdu sJ ttdtd dtd t t ddjd u s8J ddt t d  jdu sGJ d	d
t t  jdu sTJ d S )Nr,   r8   Fr.   r   ir   r/   r   r   )	r   r!   r   is_realis_imaginaryr
   r   r   r   r4   r4   r4   r5   test_issue_17450  s
   4r   c                   C   s0   t dtdt  dt tdt  ksJ d S r   )r   r   r   r4   r4   r4   r5   test_issue_18190'  s   0r   c                  C   s   t ddd} t| jdu sJ t ddd} t| jd u sJ t ddd} t| jdu s-J t ddd} t| jdu s<J ttddjd u sGJ ttddjd u sRJ d S )NrB   TrG   FrU   )extended_realr   )r   r   is_extended_negativer   r   rE   r4   r4   r5   test_issue_14815+  s   r   c                  C   s   t ddd} | t tu sJ d|  t tju sJ d|  t tju s$J |  t tu s-J t dt  tju s9J t dt  tu sDJ tdt  tju sOJ tdt  tu sYJ d S )NrB   T)primer,   rC   )r   r   r   r   r   r   rE   r4   r4   r5   test_issue_185098  s   r   c                  C   sL   t d\} }td| d  d|  t|  }t|| ddjdks$J d S )Nze pr,   r.   r/   r   )r   r   r   r   r   r   )r9   r   g0r4   r4   r5   test_issue_18762D  s     r   c                  C   s   t d} ddtdd  dtdd  | tdd  }ttddttdtdd	ttdtd
d}|| tddi|ksBJ d S )NrB   r/   r.   l   I> l    P! l   &B l    tvH. l   UM l    h] l   
j l    _ % r}   )r   r   r   r
   r   xreplacerB   r9   ansr4   r4   r5   test_issue_21860J  s   .
 r   c                  C   s   t d} ttdd dtdd |   d  }tttddttdtd	d
ttdtddttdtddttdtdd}|| di|ksPJ d S )NrB   i7  i  i+  d   l   OjY#v9ZG*- l        6kLEIeL_J
G:5 r.   l   D i+l     5:Vr/   l   [Q*l    Zx^+r-   l   , :-l    @kux- r8   rR   )r   r   r   r   r   r
   r   r   r4   r4   r5   test_issue_21647S  s   (r   c                  C   sn   t d} | d d tdd  }ttddttdtdd	ttdtd
d	}|| tji|ks5J d S )NrB   r.   rR   l   UUi1l     ]
r-   r   l   *tXl     .xEl   UUA:}l )r   r   r   r   r
   r   r   r1   r   r4   r4   r5   test_issue_21762_  s   
r   c                  C   s.   dd } t | | \}}|dkr|du sJ d S )N   r,   F)r(   )r2   rB   xexactr4   r4   r5   test_issue_14704h  s   r   c                   C   s   t ddt dd dtd d ksJ t ddt dd dt dd d ks)J t ddt dd ddt dd  dt dd  d	 ksGJ d S )
Nr.   r/   rR   r   r,   r      r8   iW  )r   r   r4   r4   r4   r5   $test_rational_powers_larger_than_onen  s   (*@r   c                     s   G dd dt } G dd d| t td|  }}tt | t| t t| |  fdd}tdd	d
tj ks=J t|dt|dksIJ t||t||ksUJ t|| ||ksaJ t|| ||ksmJ t|| ||ksyJ d S )Nc                   @      e Zd ZdS )z&test_power_dispatcher.<locals>.NewBaseN__name__
__module____qualname__r4   r4   r4   r5   NewBasev      r   c                   @   r   )z%test_power_dispatcher.<locals>.NewPowNr   r4   r4   r4   r5   NewPowx  r   r   r2   c                    s
    | |S r`   r4   r<   r   r4   r5   _|  s   
z test_power_dispatcher.<locals>._r.   r/   r}   )r   r
   r   r'   registerr   r@   )r   r2   r=   r   r4   r   r5   test_power_dispatchert  s   


r   c                   C   s   dd t dD dtttttd dtt t ttd  dtttttd dgks/J tttdd  ttdd	   ksDJ d S )
Nc                 S   s   g | ]}t t| qS r4   )r   r   )r   rk   r4   r4   r5   
<listcomp>  s    z$test_powers_of_I.<locals>.<listcomp>r   r,   r/   rC   r   r.   r   )ranger   r   r   r4   r4   r4   r5   test_powers_of_I  s
   .
.r   N)a
sympy.corer   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   sympy.core.parametersr   sympy.core.tests.test_evalfr   sympy.core.functionr   r   r   r   &sympy.functions.elementary.exponentialr   r   'sympy.functions.special.error_functionsr   (sympy.functions.elementary.trigonometricr   r   r   r   r   r    %sympy.functions.elementary.hyperbolicr!   r"   r#   sympy.polysr$   sympy.series.orderr%   
sympy.setsr&   sympy.core.powerr'   r(   sympy.testing.pytestr)   r*   sympy.utilities.exceptionsr+   r6   r:   rA   rF   rS   rT   rZ   rt   rx   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   r4   r4   r4   r5   <module>   sp   L   g	
%

%		:)		