ó
~9­\c           @   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 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 „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d	 „  Z, d
 „  Z- d „  Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d „  Z4 d S(   iÿÿÿÿ(   t   symbolst   powsimpR    t   MatrixSymbolt   sqrtt   pit   Mult   gammat   Functiont   St   It   expt   simplifyt   sint   Et   logt   hypert   Symbolt   Dummyt	   powdenestt   roott   Rationalt   oo(   t   xt   yt   zt   tt   at   bt   ct   dt   et   ft   gt   ht   it   kc          C   s=  t  d ƒ \ }  } } } t d ƒ } t d |  d |  d |  ƒ d k sR t ‚ t d |  d |  d |  ƒ d k s€ t ‚ t | d |  d |  d |  ƒ ƒ | d |  d |  d |  ƒ k sÐ t ‚ t | d |  d |  d |  ƒ d t ƒ| d ƒ k st ‚ t |  ƒ t | ƒ t |  ƒ t | ƒ k sBt ‚ t t |  ƒ t | ƒ ƒ t |  | ƒ k stt ‚ t t |  ƒ t | ƒ d |  d | ƒ d t |  | k s¸t ‚ 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 sÔt ‚ t t t |  ƒ t | ƒ ƒ d t ƒt t |  | ƒ ƒ k st ‚ t |  d |  | ƒ |  d | k sDt ‚ t d t t t ƒ t t ƒ d	 d
 d t ƒd t d t ƒ t t ƒ k sšt ‚ t d t t t ƒ t t ƒ d t ƒd t d t ƒ t t ƒ k sêt ‚ t d t t t ƒ t t ƒ ƒ d t d t ƒ t t ƒ k s4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	 d ƒd t t t ƒ t t ƒ k sÔt ‚ t  d d t ƒ\ }  } t d d t ƒ} t | | | |  | ƒ |  | k s+t ‚ t |  |  |  | | |  | | |  |  | | |  | d t ƒ|  | |  | |  | k s‘t ‚ t d d d |  |  d t	 ƒd d d |  |  k sÏt ‚ t d d d |  |  d t ƒd |  d |  k s	t ‚ t t |  t |  ƒ t |  t
 |  ƒ ƒ ƒ d t	 d	 d
 ƒt |  t |  ƒ t |  t
 |  ƒ ƒ ƒ k s{t ‚ t t |  t |  ƒ t |  t
 |  ƒ ƒ ƒ d t	 d	 d
 ƒt |  t |  ƒ t |  t
 |  ƒ ƒ ƒ k sít ‚ t |  | d | d t	 d	 d
 ƒ|  | d | k s)t ‚ t |  d | d | d t d	 d
 ƒ|  d | d | k smt ‚ t t |  ƒ d t |  ƒ t | ƒ d t ƒt |  ƒ d t |  | ƒ k sÁt ‚ t |  | | |  | | d t ƒ|  | | |  | k st ‚ t | |  | | |  d t ƒ| |  | |  k s=t ‚ t |  | |  | | |  d t ƒ|  | |  | |  k st ‚ t  d d t ƒ} t d |  t
 d ƒ |  ƒ d |  d t
 d ƒ k sÍt ‚ t d | t
 d ƒ | ƒ | d t
 d ƒ k s	t ‚ t d d |  ƒ d |  k s)	t ‚ t d d |  ƒ d d |  k sQ	t ‚ t  d d t ƒ} t d d | ƒ d k sƒ	t ‚ t d |  ƒ d |  k s¤	t ‚ t d d |  d t ƒd k sÊ	t ‚ t  d d t ƒ\ } } } | t }	 | |	 | |	 | |	 }
 t |
 ƒ | | t | | t | | t k sA
t ‚ | d }	 | |	 | |	 | |	 }
 t |
 ƒ d | | | | | d k s–
t ‚ d | | }	 | |	 | |	 | |	 }
 t |
 ƒ d d |	 | | | |	 k sï
t ‚ |  d t d } t | ƒ j | j k o,d t d k n s7t ‚ t d d |  ƒ d |  k s[t ‚ t t | d ƒ ƒ t | d ƒ k s‡t ‚ t g  t d ƒ D] } t t d t ƒ ƒ ^ q—Œ  } t | ƒ | k rÖ| j sÜt ‚ t d „  t |  t ƒ t |  d ƒ f Dƒ ƒ st ‚ t t t t t d ƒ t d d ƒ ƒ ƒ d k sKt ‚ t d |  ƒ d |  k smt ‚ 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 s9t ‚ d  S(   Ns   x,y,z,nR   i   i   i   iüÿÿÿiþÿÿÿt   deept   combineR
   t   bases   x,yt   nonnegativet   nt   reali   t   pt   positiveiÿÿÿÿR"   t   integert   forces   w n mt   negativet	   imaginaryc         s   s!   |  ] } t  | ƒ | k Vq d  S(   N(   R   (   t   .0R   (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pys	   <genexpr>`   s    s   (-1)**(2/3)gš™™™™™¹?g       @i   (   R    R   R   t   AssertionErrort   TrueR
   R   R   R   t   FalseR   R   R   t   rangeR   R   t   is_Mult   allt   strR	   R   R   R   R   (   R   R   R   R(   R   R*   R"   t   wt   mR   t   ext   eq(    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_powsimp	   sž    ..M@22D/%G=DD,.(((J((((-C#>:9696<D-'B:B<8$( !&
8
116$,4!69"2&/c          C   s3  t  t t t t t ƒ ƒ t t t ƒ k s6 t ‚ t  t t t t t t t ƒ t t t ƒ ƒ t t t ƒ t t t ƒ k s t ‚ t d d t ƒ}  t  |  t |  t ƒ d t k sË t ‚ t d d t ƒ} t  | t | t ƒ d t k st ‚ t  t t t t ƒ d t k s/t ‚ d  S(   NR*   R+   iÿÿÿÿR(   R.   (	   R   R   R   R   R1   R   R    R2   R   (   R*   R(   (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_powsimp_negated_baset   s    6Z))c          C   sx  t  d ƒ \ }  } } t  d d t ƒ\ } } } t | |  | | d d ƒ| |  | k sb t ‚ t | |  | | d d ƒ| |  | | k s˜ t ‚ t | |  | | d d ƒ| |  | k sÊ t ‚ t | |  | |  d d ƒ| |  | |  k s t ‚ t | |  | |  d d ƒ| |  | |  k s6t ‚ t | |  | |  d d ƒ| |  | |  k slt ‚ t | |  | |  d d ƒ| |  | |  k s¢t ‚ t | |  | |  d d ƒ| |  | |  k sØt ‚ t | |  | |  d d ƒ| |  | |  k st ‚ t | |  | | | | d d ƒ| |  | | k sLt ‚ 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 s¢t ‚ t | |  | |  | |  d d ƒ| |  | |  | |  k sèt ‚ t | |  | |  | |  d d ƒ| |  | |  | |  k s.t ‚ t | |  | |  | |  d d ƒ| |  | |  | |  k stt ‚ d  S(   Ns   x,y,zs   A B Ct   commutativeR%   R6   R&   R
   (   R    R3   R   R1   (   R   R   R   t   At   Bt   C(    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_powsimp_nc   s(    262666666>F>FFFFFc           C   s<   t  d d t d t ƒ d t d t d k s8 t ‚ d  S(   Ni   i   i   i   i   (   R   R   R   R1   (    (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_issue_6440œ   s    c          C   s  d d l  m }  d d l m } m } m } m } m } t d d t	 ƒ\ } } t d d t	 ƒ\ } }	 |  | ƒ | k s€ t
 ‚ |  | d | d | d	 d	 | ƒ | d | d | d	 d	 | k sÐ t
 ‚ |  t d | d	 ƒ d	 | ƒ sø t
 ‚ |  | d | d	 d	 | ƒ | d | d	 d	 | k s8t
 ‚ |  t d	 | t d ƒ ƒ ƒ d d	 | k slt
 ‚ |  t | d ƒ ƒ | k sŽt
 ‚ t d d t	 ƒ\ } }	 | d | | d
 | }
 |  |
 ƒ | | d d | k sèt
 ‚ |  | | | |	 ƒ st
 ‚ |  t d	 | t | ƒ ƒ ƒ | d	 | k s:t
 ‚ |  t | t | ƒ t | ƒ ƒ ƒ | | | k stt
 ‚ |  t d	 t | ƒ t | ƒ ƒ ƒ | d	 | d	 k s²t
 ‚ |  | d | d	 | | ƒ | d | d	 | | k sòt
 ‚ |  | d | d	 | | d t	 ƒ| d | | | k s4t
 ‚ |  | d | d	 d	 | | | ƒ | d | d	 d	 | | | k s„t
 ‚ |  | d | | d
 | | d t	 ƒ| | d d | | k sÎt
 ‚ |  | d | | d
 | |	 ƒ | | d d | |	 k st
 ‚ | d | d	 | | } |  | ƒ | k sDt
 ‚ | d | d
 | | | } |  | ƒ | k szt
 ‚ | d | d
 | | | d	 } |  | ƒ | d | d
 | d	 | | k sÐt
 ‚ |  | d | d
 | | | d t	 ƒ| | d d | | | k st
 ‚ |  | d | d
 | | | d	 d t	 ƒ| | d d | | | k spt
 ‚ |  | d | d | ƒ | | d	 d | k s¨t
 ‚ t d d t	 ƒ\ } } |  | d | d | ƒ | | d	 d | k søt
 ‚ |  | d | d	 | | d d | ƒ | t d
 ƒ d	 | | d k sJt
 ‚ |  t | d | | d | ƒ ƒ | | d	 | k sˆt
 ‚ |  d
 | ƒ d d | k s¬t
 ‚ |  d
 | | ƒ d d | | k sØt
 ‚ |  d
 | | ƒ d d | | k st
 ‚ d  S(   Niÿÿÿÿ(   R   (   R   R   R   R   R   s   p qR+   s   i,jR,   i   i   i   R-   i   s   x,y(   t   sympyR   t	   sympy.abcR   R   R   R   R   R    R2   R1   R
   R   R   R   (   R   R   R   R   R   R   R*   t   qR"   t   jR;   R   (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_powdenest    sR    (P(@4"(4:>@B%+JD"4''+'88R>$,c          C   sì   t  d d t ƒ\ }  } } t  d ƒ \ } } } t |  | | | ƒ |  | | | | | k sh t ‚ t |  | | | | ƒ |  | | | | | k s¤ t ‚ t |  | | | | | ƒ |  | | | | | d k sè t ‚ d  S(   Ns   x y zt   polars   a b ci   (   R    R2   R   R1   (   R   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_powdenest_polarÐ   s
    8<c          C   ss   t  t ƒ t d d t ƒ t d }  t |  ƒ t t  t ƒ t d d t ƒ d k sZ t ‚ |  j d  k so t ‚ d  S(   Ni   (    (    (    (    (   R   R   R   R   R   R1   t   is_positivet   None(   t   arg(    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_issue_5805Ø   s    $6c          C   sY   t  d d d ƒ }  t |  d t ƒ} | |  k s6 t ‚ | j d t d ƒ k sU t ‚ d  S(   Nt   Mi
   R$   i    (   R   R   R2   R1   t   argsR   (   RO   t   expr(    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt(   test_issue_9324_powsimp_on_matrix_symbolÞ   s    c          C   s!  d t  d ƒ d t  d t  d ƒ d ƒ t  t  d ƒ d t d ƒ d ƒ }  t g  t j |  j ƒ  ƒ D] } t | ƒ ^ qh Œ  d k s t ‚ t |  j ƒ  ƒ d k s­ t ‚ 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(   Niûÿÿÿi   i   i   i    i   (   R   R   R   t	   make_argst   normalR   R1   R   (   R   R   (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_issue_6367å   s    O@@c          C   s÷  d d l  m }  m } t d ƒ \ } } } t d d t ƒ\ } } } |  d ƒ d | | d t t | ƒ k sx t ‚ t | | | | ƒ | | | k s¤ t ‚ | | d | | d k sÆ t ‚ d | | | | k så t ‚ | | ƒ | | ƒ | | ƒ | | ƒ k st ‚ t | | ƒ | | ƒ ƒ | | | ƒ k sIt ‚ t | | ƒ | | ƒ | | | | ƒ | | d ƒ | | k s“t ‚ t | | ƒ | | ƒ | | | | d d	 ƒ| | | ƒ | | | k sçt ‚ t | | ƒ | | ƒ | d ƒ t	 | ƒ t	 | ƒ | | | | ƒ | | | t	 | ƒ | d | | ƒ t	 | ƒ k skt ‚ t t	 | | ƒ | | ƒ ƒ ƒ t	 | | ƒ | | ƒ ƒ k s¯t ‚ t t	 | | ƒ | | ƒ ƒ d
 t ƒt	 | | | ƒ ƒ k sót ‚ d  S(   Niÿÿÿÿ(   t
   polar_liftt	   exp_polars   x y zs   p q rRI   i   i   R%   R
   R$   (
   RD   RV   RW   R    R2   R   R	   R1   R   R   (   RV   RW   R   R   R   R*   RF   t   r(    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_powsimp_polarî   s(    2,"22)!/%D=%%c          C   sb  t  t t ƒ }  t |  ƒ } t t t  ƒ t ƒ } t | |  ƒ t |  ƒ d k sX t ‚ t | |  d t t ƒ ƒ t t ƒ | d k s t ‚ 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 sXt ‚ t t t  ƒ | d t ƒ | d k s†t ‚ t t t  ƒ | d t t ƒ ƒ t t  ƒ t t ƒ | d k sÎt ‚ t t t t  ƒ | d t t ƒ t d t ƒƒ t t  ƒ t t ƒ d | d k s)t ‚ t | d | t  d t ƒ | d k sYt ‚ t  t t }  |  t |  ƒ } | j t k sŒt ‚ t | ƒ t |  ƒ d k s®t ‚ t  t	 d t d ƒ } t | t | ƒ ƒ t | ƒ d k sòt ‚ t | d t | ƒ ƒ t | ƒ d k s"t ‚ t | d t t | ƒ ƒ ƒ t t | ƒ ƒ d k s^t ‚ d  S(   Ni   i   i   i   t   evaluatei	   (
   R   R   R   R   R1   R   R3   R5   R2   R
   (   R   R   R   (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_issue_5728  s,    &884,0.H0+0",0c          C   s  t  d d t ƒ\ }  } } } t t |  ƒ t | ƒ t | ƒ ƒ t t |  ƒ t | ƒ t | ƒ k sr t ‚ 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(   Ns   n1 n2 n3 n4R.   i   iÿÿÿÿi   (   R    R2   R   R   R	   R1   R   R   (   t   n1t   n2t   n3t   n4(    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_issue_from_PR1599$  s
    #19c          C   s\  t  d d t ƒ}  t  d d t d t ƒ} t  d d t ƒ} d | d	 t d
 d	 ƒ d d | d	 t d
 d	 ƒ } t d | d	 ƒ t | k s˜ t ‚ t d | d	 ƒ t | k s¼ t ‚ t d d | d	 ƒ t | k så t ‚ t | ƒ d | d	 t d
 d	 ƒ d d | d	 t d
 d	 ƒ k s/t ‚ t d d |  d	 ƒ t |  k sXt ‚ d  S(   NR   R,   t   lt   event   nonzeroR(   t   oddiÿÿÿÿi   i   i   (   R   R2   R   R   R	   R1   (   R   Ra   R(   t   e_x(    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_issue_10195-  s    8$$)/c           C   s4   t  d d t d ƒ d d t d k s0 t ‚ d  S(   Ni   i   i   (   R   R   R1   (    (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_issue_157099  s    c          C   s\   t  d d t ƒ\ }  } t |  | d | |  d ƒ |  | d | |  d k sX t ‚ d  S(   Ns   x yR>   i   (   R    R3   R   R1   (   R   R   (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   test_issue_11981=  s    N(5   RD   R    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   RE   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R<   R=   RB   RC   RH   RJ   RN   RR   RU   RY   R[   R`   Rf   Rg   Rh   (    (    (    s@   lib/python2.7/site-packages/sympy/simplify/tests/test_powsimp.pyt   <module>   s    ”^	k				0											