ó
¡¼™\c           @   só  d  d l  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 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# d  d l$ m% Z% m& Z& m' Z' m( Z( d  d l) m* Z* m+ Z+ m, Z, m- Z- m. Z. d  d l/ m0 Z1 d  d l2 m3 Z3 d  d l m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< m= Z= m> Z> m? Z? m@ Z@ mA ZA d	 „  ZB d
 „  ZC eD d eE d „ ZF d „  ZG e* d „  ƒ ZH d „  ZI d „  ZJ d „  ZK d „  ZL d „  ZM d  d „ ZN e, d „  ƒ ZO d „  ZP d „  ZQ d „  ZR d „  ZS d „  ZT d „  ZU d „  ZV eD d „ ZW e, d „  ƒ ZX d „  ZY e* d  „  ƒ ZZ e, d! „  ƒ Z[ d" „  Z\ e, d# „  ƒ Z] d$ „  Z^ d% „  Z_ d& „  Z` d' „  Za d( „  Zb e, d) „  ƒ Zc d* „  Zd e, d+ „  ƒ Ze e, d, „  ƒ Zf e, d- „  ƒ Zg e, d. „  ƒ Zh e, d/ „  ƒ Zi e, d0 „  ƒ Zj e, d1 „  ƒ Zk d2 „  Zl e, d3 „  ƒ Zm d4 „  Zn d5 „  Zo e, d6 „  ƒ Zp e* d7 „  ƒ Zq e* d8 „  ƒ Zr e* d9 „  ƒ Zs d: „  Zt d; „  Zu d< S(=   iÿÿÿÿ(   t	   randrange(   t   ShiftAt   ShiftBt   UnShiftAt   UnShiftBt   MeijerShiftAt   MeijerShiftBt   MeijerShiftCt   MeijerShiftDt   MeijerUnShiftAt   MeijerUnShiftBt   MeijerUnShiftCt   MeijerUnShiftDt   ReduceOrdert   reduce_ordert   apply_operatorst   devise_plant   make_derivative_operatort   Formulat   hyperexpandt   Hyper_Functiont
   G_Functiont   reduce_order_meijert   build_hypergeometric_formula(	   t   hypert   It   St   meijergt	   Piecewiset   Tuplet   Sumt   binomialt   Expr(   t   zt   at   bt   c(   t   XFAILt   raisest   slowt	   ON_TRAVISt   skip(   t   verify_numerically(   t   range(   t   cost   sint   logt   expt   asint
   lowergammat   atanht   besselit   gammat   sqrtt   pit   erft	   exp_polart   Rationalc           C   sŽ  t  t t d ƒ d t d ƒ d f t d ƒ d t d ƒ d f t ƒ ƒ t t d ƒ t t t t ƒ d t ƒ d t t ƒ t	 t t ƒ ƒ d t t ƒ k s¬ t
 ‚ t  t t d ƒ d d g g  t d ƒ d g t d ƒ d d g t ƒ ƒ d t t d	 ƒ d t t ƒ t	 t t ƒ ƒ t t ƒ d t t d ƒ d t ƒ t t d	 ƒ t t d ƒ d ƒ t t d ƒ d ƒ k sŠt
 ‚ d  S(
   Ni   i   i   s   1/3i   i   i   i    s   2/3(   R   R   R   R!   R1   R8   R   R6   R5   R7   t   AssertionErrorR   R4   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_branch_bug   s
    K-4Hc           C   sn  t  t g  g  t ƒ ƒ t t ƒ k s* t ‚ t  t d d g d g t ƒ t ƒ t d t ƒ k sf t ‚ t  t g  t j g t d d ƒ ƒ t t ƒ k sŸ t ‚ t  t t g  t d ƒ g t d d ƒ ƒ t	 t ƒ k sß t ‚ t  t t d ƒ t d ƒ g t d ƒ g t d ƒ t ƒ t
 t ƒ k s,t ‚ t t t d t ƒ t d t d t f ƒ j ƒ  t ƒ sjt ‚ d  S(   Ni   i   i   s   3/2s   1/2i    (   R   R   R!   R/   R:   R.   R   t   HalfR,   R-   R0   t
   isinstanceR   R   R"   t   doitR    (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_hyperexpand   s    *<9@8i   c         C   sw  d d l  m } m } t t |  | t ƒ ƒ } | j t ƒ rA t S| sK t Si  } | j	 t h }	 x| |	 rß x. t
 |	 ƒ D]  \ }
 } t |
 ƒ | | | <qw Wt g  t | Œ  j | ƒ D] } | j oÌ | d k ^ q´ ƒ sd Pqd qd Wd d d d g \ } } } } | r%d d d d g \ } } } } n  t t |  | t ƒ j | ƒ | j | | ƒ j | ƒ t d | d	 | d
 | d | ƒS(   Niÿÿÿÿ(   R8   R/   i    i   i   i   iþÿÿÿR"   R#   R$   t   d(   t   sympyR8   R/   R   R   R!   t   hast   Falset   Truet   free_symbolst	   enumeratet   randcplxt   anyR   t   subst
   is_Integert   tnt   replace(   t   apt   bqt	   numericalt   divt
   lowerplaneR8   R/   t   rt   replt   randsymst   nR"   R#   R$   R@   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   can_do,   s(    	=!c           C   s…  t  t d ƒ d g t d ƒ d g ƒ s/ t ‚ t  g  d t d ƒ d d g ƒ sW t ‚ t  t j d d g d d g ƒ s t ‚ t  t d ƒ d g t d ƒ d t d ƒ d t d ƒ d d g ƒ sÍ t ‚ t  t d ƒ d t d ƒ d g t d ƒ d d g ƒ st ‚ t  t d ƒ d g t d ƒ d t d ƒ d g ƒ sMt ‚ t  t d ƒ d t d ƒ d g d g ƒ st ‚ d  S(   Ni   i   i	   i   i   i   (   RV   R   R:   R<   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt
   test_roachD   s    /((NB>c           C   sJ  t  t d ƒ d d g t d ƒ d t d ƒ d t d ƒ d g ƒ sM t ‚ t  t d ƒ d g t d ƒ d d g ƒ s t ‚ t  t d ƒ d t d ƒ d d g t d ƒ d t d ƒ d g ƒ sÌ t ‚ t  d d d g t d ƒ d d g ƒ sú t ‚ t  t d ƒ d g t d ƒ d t d ƒ d t d ƒ d g ƒ sFt ‚ d  S(   Ni   i   i   i   i   (   RV   R   R:   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_roach_failP   s
    M2M.c          C   sî   d d l  m }  t t g  d g t ƒ ƒ |  k s7 t ‚ t t d g d g t ƒ ƒ |  k sa t ‚ t t d d g d g t ƒ ƒ d k sŽ t ‚ t d d t ƒ  t ƒ  g d t ƒ  g ƒ s¾ t ‚ t t d	 d
 t ƒ ƒ d t d k sê t ‚ d  S(   Niÿÿÿÿ(   t   ooiþÿÿÿi    i   iûÿÿÿiöÿÿÿi   (   iÿÿÿÿi   (   iþÿÿÿ(   RA   RY   R   R   R!   R:   RV   RG   (   RY   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_polynomial[   s    '*-0c           C   sì  t  t d g t g t ƒ ƒ t t t d t d d t t t d d t t ƒ t t d t ƒ d k sw t ‚ t  t d d g d g t ƒ ƒ d t d t t d ƒ t d k sÃ t ‚ t  t t j	 d g t d ƒ d g t ƒ ƒ d d t d t
 t t ƒ ƒ t t ƒ d k s't ‚ t  t t d ƒ d t d ƒ d g t d ƒ d g t ƒ ƒ d t d d t t t d ƒ d	 t d t t t ƒ ƒ d t t d ƒ d k sÃt ‚ t  t d d g t d ƒ d g t ƒ ƒ d d t d t t t ƒ ƒ t t ƒ d t d t t d ƒ k s;t ‚ t  t t j	 d d d g t j	 d g t ƒ ƒ t t ƒ d	 t d
 t d	 ƒ d t
 t t ƒ ƒ d t d d t d	 d t d	 t t d ƒ d t d k sèt ‚ t  t d t j	 d d g d d g t ƒ ƒ d t t t d ƒ d t d ƒ d ƒ t k sMt ‚ t  t d g t d g t ƒ ƒ t t d t d ƒ d t t d d t t ƒ ƒ t t ƒ t t d d t t d t t ƒ ƒ t t ƒ k sèt ‚ d  S(   Ni   i   i   iþÿÿÿiÿÿÿÿi   iýÿÿÿi   i   i   iâÿÿÿi    i#   iüÿÿÿ(   R   R   R"   R!   R/   R1   R:   R.   R   R<   R2   R5   R0   R#   R3   R4   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_hyperexpand_basesd   s"    \L+9<">7A/~+:?c           C   sì   t  t t t d ƒ d t g t d ƒ d g t ƒ ƒ d t t ƒ d t d d t t ƒ d t d k su t ‚ t  t t t d ƒ d t g d t g t ƒ ƒ d d t d t d t d ƒ d d d t d k sè t ‚ d  S(   Ni   i   iþÿÿÿ(   R   R   R"   R   R!   R5   R:   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_hyperexpand_parametric~   s    6?1c          C   s   d d l  m }  |  t t d t d g d t d ƒ g t d ƒ ƒ ƒ t t d t ƒ t d t j t d t ƒ t j k s‰ t	 ‚ d  S(   Niÿÿÿÿ(   t   simplifyi   i   i   s   3/2(
   RA   R]   R   R!   R   R   R-   R<   R,   R:   (   R]   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_shifted_sum…   s    7c           C   s   t  t d ƒ d ƒ d S(   s    Steer clear of integers. i   i
   i2   (   R   R    (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   _randrat‹   s    c         C   s   t  ƒ  t t  ƒ  t d |  S(   s+    Polys is not good with real coefficients. i   (   R_   R   (   t   offset(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyRG      s    c          C   sÃ  d d l  m }  |  ƒ  j } x | D]˜} | j | j ƒ } i  } x- t | j ƒ D] \ } } t | ƒ | | <qQ W| j | ƒ } | j	 j | ƒ j
 d ƒ } | j } t | | j t t ƒ | ƒ sÈ t ‚ | j | j d j | ƒ j
 d ƒ }	 t | j t t ƒ |	 j t t ƒ | ƒ st ‚ | | j j d „  ƒ j | ƒ }
 | j | j } xh t |
 | ƒ D]W \ } } t | j | ƒ j t t ƒ | j | ƒ j
 d ƒ j t t ƒ | ƒ s`t ‚ q`Wq# Wd  S(   Niÿÿÿÿ(   t   FormulaCollectiont   nonrepsmalli    c         S   s   |  j  d ƒ S(   NRb   (   t   rewrite(   t   t(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   <lambda>®   s   (   t   sympy.simplify.hyperexpandRa   t   formulaet   funcR!   RF   t   symbolsRG   RI   t   closed_formRc   RK   RL   R8   R/   R:   t   Ct   Bt	   applyfunct   difft   Mt   zip(   Ra   Rg   t   formulat   ht   repRU   t   symRj   R!   t   clt   deriv1t   deriv2t   d1t   d2(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_formulae•   s(    	$&	'
c          C   s‡  d d l  m }  |  ƒ  j } xd| D]\} xS| | D]G} t | j j | j j | j j | j j | j	 ƒ } i  } x | j
 D] } t ƒ  | | <q} W| j | ƒ } | j j | ƒ } | j	 } t | | | ƒ sÖ t ‚ | j | j d j | ƒ }	 t | |	 | ƒ st ‚ | | j j | ƒ }
 | j | j } xG t |
 | ƒ D]6 \ } } t | j | ƒ | j | ƒ | ƒ sAt ‚ qAWq4 Wq# Wd  S(   Niÿÿÿÿ(   t   MeijerFormulaCollectioni    (   Rf   R{   Rg   R   Rh   t   anRM   t   bmRN   R!   Ri   RG   RI   Rj   RK   R:   Rk   Rl   Rn   Ro   Rp   (   R{   Rg   t   sigRq   t   gRs   Rt   Rj   R!   Ru   Rv   Rw   Rx   Ry   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_meijerg_formulae¶   s(    	c         C   s   t  |  j t  ƒ S(   N(   R!   Rn   (   t   f(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   opÑ   s    c          C   s2  t  t d g d ƒ t d g d ƒ t ƒ g  k s6 t ‚ t t ƒ * t  t d g d	 ƒ t d
 d ƒ t ƒ Wd  QXt t ƒ 3 t  t d g d g ƒ t d g d g ƒ t ƒ Wd  QXt t ƒ 3 t  t d g g  ƒ t t d ƒ g g  ƒ t ƒ Wd  QXd „  t d ƒ Dƒ \ }  } } | d t 7} t	 |  | g | g t ƒ } t	 |  d | f | g t ƒ } t
 t | t  t |  d | f | g ƒ t |  | f | g ƒ t ƒ t ƒ | t ƒ s¯t ‚ t	 |  d | d f | g t ƒ } t
 t | t  t |  d | d f | g ƒ t |  | f | g ƒ t ƒ t ƒ | t ƒ s.t ‚ d  S(   Ni    i   i   s   1/2c         s   s   |  ] } t  | ƒ Vq d  S(   N(   RG   (   t   .0RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pys	   <genexpr>à   s    i   (    (    (    (    (    (   R   R   R!   R:   R&   t
   ValueErrorR   R+   R   R   RK   R   R‚   (   t   a1t   a2t   b1Rr   t   h2(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt	   test_planÕ   s*    $+44	!#	 !c    
      C   sp  d d t  d ƒ }  } } d t  d ƒ } } t |  | | f | | f ƒ } t |  d | d | d f | d | d f ƒ } t | | t ƒ } t | t | t ƒ g  ƒ } t | j t ƒ }	 t t | j	 | |	 ƒ | j
 d | t ƒ t ƒ sô t ‚ t |  | d | d f | d | d f ƒ } t | | t ƒ } t t | j	 | |	 ƒ | j
 d | t ƒ t ƒ slt ‚ d  S(   Ni   i   s   1/2i   s   5/2i    (   R   R   R   R!   R   R   Ro   RK   R   Rk   Rl   R:   (
   R…   R†   t   a3R‡   t   b2Rr   Rˆ   t   opsR   t   deriv(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_plan_derivativesñ   s    28.c    	      C   s$  d „  t  d ƒ Dƒ \ }  } } t |  g | g t ƒ } t d d ƒ d  k sR t ‚ t d d ƒ d  k sm t ‚ t d t d ƒ ƒ d  k sŽ t ‚ t |  | f | | f t ƒ } t t | | ƒ j | t	 ƒ | t ƒ sÙ t ‚ t |  | d f | | f t ƒ } t t | d | ƒ j | t	 ƒ | t ƒ s,t ‚ t | d |  f | | f t ƒ } t t | d | ƒ j | t	 ƒ | t ƒ st ‚ | d |  | d f } | | | f } t
 t | | ƒ ƒ \ } } | j |  f k sØt ‚ | j | f k sðt ‚ t t | | t	 ƒ t | | t ƒ t ƒ s t ‚ d  S(	   Nc         s   s   |  ] } t  | ƒ Vq d  S(   N(   RG   (   Rƒ   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pys	   <genexpr>  s    i   i   i    iÿÿÿÿi   s   1/2i   (   R+   R   R!   R   t   NoneR:   R   RK   t   applyR‚   R   R   RM   RN   R   (	   R…   R†   R‡   Rr   Rˆ   RM   RN   Rh   RŒ   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_reduction_operators   s"    !-"1"1c          C   s×  d „  t  d ƒ Dƒ \ }  } } } } t |  | f | | | f t ƒ } t t d „  ƒ t t d „  ƒ t t |  ƒ j | t ƒ t |  d | f | | | f t ƒ t ƒ s¯ t	 ‚ t t | ƒ j | t ƒ t |  | d f | | | f t ƒ t ƒ sø t	 ‚ t t
 | ƒ j | t ƒ t |  | f | d | | f t ƒ t ƒ sAt	 ‚ t t
 | ƒ j | t ƒ t |  | f | | d | f t ƒ t ƒ sŠt	 ‚ t t
 | ƒ j | t ƒ t |  | f | | | d f t ƒ t ƒ sÓt	 ‚ d  S(   Nc         s   s   |  ] } t  | ƒ Vq d  S(   N(   RG   (   Rƒ   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pys	   <genexpr>  s    i   c           S   s
   t  d ƒ S(   Ni    (   R   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyRe     t    c           S   s
   t  d ƒ S(   Ni   (   R   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyRe     R’   i   (   R+   R   R!   R&   R„   RK   R   R   R‚   R:   R   (   R…   R†   R‡   R‹   t   b3Rr   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_shift_operators  s    %!IIIIc          C   s  d „  t  d ƒ Dƒ \ }  } } } } t |  | f | | | f t ƒ } t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t |  | f | | | f d t ƒ } t | j | t ƒ t |  d | f | | | f t ƒ t ƒ sí t	 ‚ t |  | f | | | f d t ƒ } t | j | t ƒ t |  | d f | | | f t ƒ t ƒ sTt	 ‚ t
 |  | f | | | f d t ƒ } t | j | t ƒ t |  | f | d | | f t ƒ t ƒ s»t	 ‚ t
 |  | f | | | f d t ƒ } t | j | t ƒ t |  | f | | d | f t ƒ t ƒ s"t	 ‚ t
 |  | f | | | f d	 t ƒ } t | j | t ƒ t |  | f | | | d f t ƒ t ƒ s‰t	 ‚ d  S(
   Nc         s   s   |  ] } t  | ƒ Vq d  S(   N(   RG   (   Rƒ   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pys	   <genexpr>)  s    i   c           S   s   t  d d d t ƒ S(   Ni   i    (   i   (    (   R   R!   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyRe   ,  R’   c           S   s   t  d d d t ƒ S(   Niÿÿÿÿi    (    (   iÿÿÿÿ(   R   R!   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyRe   -  R’   c           S   s   t  d d d t ƒ S(   Ni   i    iÿÿÿÿ(   i   (   i    iÿÿÿÿi   (   R   R!   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyRe   .  R’   c           S   s   t  d d d t ƒ S(   Ni    i   (   i    i   (   i   (   R   R!   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyRe   /  R’   i    i   i   (   R+   R   R!   R&   R„   R   RK   R   R‚   R:   R   (   R…   R†   R‡   R‹   R“   Rr   t   s(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_ushift_operators(  s     %!$C$C$C$C$c         C   s  d d l  m } m } t t |  | | | t ƒ ƒ } | j t ƒ rG t S| | | d t d t d t d t d t d t d	 t ƒƒ } | s t Si  } xF t	 t |  | | | t ƒ j
 t h ƒ D] \ }	 }
 t |	 ƒ | |
 <q¼ Wt t |  | | | t ƒ j | ƒ | j | ƒ t ƒ S(
   sb  
    This helper function tries to hyperexpand() the meijer g-function
    corresponding to the parameters a1, a2, b1, b2.
    It returns False if this expansion still contains g-functions.
    If numeric is True, it also tests the so-obtained formula numerically
    (at random values) and returns False if the test fails.
    Else it returns True.
    iÿÿÿÿ(   t
   unpolarifyt   expandt   forcet
   power_baset	   power_expt   mulR.   t   multinomialt   basic(   RA   R—   R˜   R   R   R!   RB   RC   RD   RF   RE   RG   RK   RI   (   R…   R†   R‡   R‹   t   numericR—   R˜   RR   RS   RU   R"   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   can_do_meijer>  s    	5c       
   C   sæ  d d l  m }  m } t t g  g  g d g g  g t ƒ ƒ t t ƒ k sP t ‚ t t d d g g  g d g d g g t ƒ ƒ t t d ƒ k s– t ‚ t t d d g g  g d g d g g t ƒ ƒ t t d k sÚ t ‚ t t g  g  g t	 d ƒ d g d g g t d d ƒ ƒ t
 t ƒ t t ƒ k s2t ‚ t t g  g  g d g t	 d ƒ d g g t d d ƒ ƒ t t ƒ t t ƒ k sŠt ‚ t g  t g t d t t	 j g g  ƒ s¹t ‚ t g  g  t d g t d g t ƒ sæt ‚ t t g t g t g t t d g ƒ st ‚ t t d g g  g  d g t ƒ ƒ t d t t ƒ d k  f d t d t ƒ d k  f t d g g  g  d g t ƒ t f ƒ k s–t ‚ t t g  d g d g g  t ƒ ƒ t d t t ƒ d k  f d t d t ƒ d k  f t g  d g d g g  t ƒ t f ƒ k st ‚ t g  g  t t d g t t t d t t	 j g ƒ sVt ‚ t g  g  t g t g t ƒ szt ‚ t g  t	 j g t g t g ƒ s¢t ‚ t g  g  t t g g  ƒ sÃt ‚ t g  g  t t g g  ƒ sät ‚ t g  g  t t t	 j g t t t	 j g ƒ st ‚ t g  g  t t g d t	 j g t ƒ sGt ‚ t g  g  t t t	 j t t t	 j g g  ƒ s|t ‚ t t	 j g g  d g t t g ƒ s§t ‚ t t	 j g g  t g d t g t ƒ sÕt ‚ t g  t t	 j g t t g t t	 j g t ƒ st ‚ t g  t t	 j g t t t t t g g  t ƒ sFt ‚ t t t	 j g g  t d t t t g g  t ƒ st ‚ t g  g  g  t t g ƒ s t ‚ t t d d g g  g  d d g t ƒ ƒ t d t t ƒ d k  f t d d d t t d t ƒ d k  f t d d g g  g  d d g t ƒ t f ƒ k s>t ‚ |  | t t d g d t g t d t d t	 d ƒ d g g  d t ƒ ƒ ƒ ƒ d t t ƒ t t d ƒ d t t k sÄt ‚ t t d g g  t g d d g t ƒ ƒ t t f t d t d f t t t t ƒ ƒ t t t t ƒ t t d ƒ d k sIt ‚ t d d	 f t	 d ƒ d f d
 f t d ƒ } t | ƒ t t ƒ t d t d ƒ k s¨t ‚ t | d d ƒt t ƒ t t t d d ƒ k sât ‚ d  S(   Niÿÿÿÿ(   t	   gammasimpR]   i    i   i   iþÿÿÿt   place(   i    i   (    (   i    (   RA   R¡   R]   R   R   R!   R/   R:   R.   R   R-   R5   R6   R,   R    R"   R<   RC   R#   R   t   absRD   R   R8   R   R4   (   R¡   R]   R   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_meijerg_expand\  s\    :--99/-.!10!10>!(!!5.5+.899!')6	J3'^/0c       	   C   sÄ  d d l  m }  m } m } t t t g g  t t g g  t ƒ ƒ t t t	 t ƒ t
 t t d ƒ |  t t t ƒ k s t ‚ t t d g g  d d g g  t ƒ ƒ t	 t ƒ |  d t ƒ k sÇ t ‚ t t g g  t t d g g  ƒ sï t ‚ t t g g  t d t g g  ƒ st ‚ t t g g  t d t g g  ƒ s?t ‚ t t t g g  t t t t d ƒ d g g  t ƒ ƒ t t ƒ t t t d ƒ d d t d t t ƒ ƒ | d t t ƒ ƒ t d d t d t t ƒ ƒ | d t t ƒ ƒ k ott t t g g  t t t d ƒ d t g g  t ƒ ƒ k ott t t g g  t t d ƒ d t t g g  t ƒ ƒ k n st ‚ t t d g g  t d t t d ƒ d t d g g  ƒ sÀt ‚ d  S(   Niÿÿÿÿ(   t
   uppergammat   Sit   Cii   i    i   i   (   RA   R¥   R¦   R§   R   R   R"   R#   R!   R/   R4   R:   R    R   R5   R6   R,   R-   (   R¥   R¦   R§   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_meijerg_lookupž  s    $A$"(((5S5=Fc        	   C   s‰  t  g  g  t t j g t t t d t t d g ƒ s> t ‚ t  g  g  d t j g t t g ƒ si t ‚ t  g  g  d t t j t t t j g t t j g ƒ sª t ‚ t  g  g  d t t j t t j g t j g ƒ sã t ‚ t  g  g  t t t d ƒ d t g d t t g ƒ s t ‚ t  g  g  t t t d ƒ d t d t t g ƒ sZt ‚ t  t j g g  t t g d g ƒ s…t ‚ d  S(   Ni   i    i   i   (   R    R"   R   R<   R#   R:   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_meijerg_expand_fail°  s    >+A9=:c          C   sƒ  d „  t  d ƒ Dƒ \ }  } d „  t  d ƒ Dƒ \ } } d „  t  d ƒ Dƒ \ } } } } } }	 t |  g | | g | g | | g t ƒ }
 t j d d ƒ d  k s¨ t ‚ t j d d ƒ d  k sÆ t ‚ t |  | g | | g | g | | | g t ƒ } t t j | | ƒ j	 |
 t
 ƒ | t ƒ s&t ‚ t |  | g | | g | g | | | d g t ƒ } t t j | | d ƒ j	 |
 t
 ƒ | t ƒ sŽt ‚ t |  | d g | | g | g | | | d g t ƒ } t t j | d | d ƒ j	 |
 t
 ƒ | t ƒ sþt ‚ t |  g | | | d g | | d g | | g t ƒ } t t j | d | d ƒ j	 |
 t
 ƒ | t d	 d
 ƒstt ‚ |  | g } | | | d g } | | | d g } | | d g } t t | | | | ƒ ƒ \ } } | j |  f k sït ‚ t | j ƒ | | h k st ‚ | j | f k s(t ‚ t | j ƒ | | h k sIt ‚ t t |
 | t
 ƒ t | | | | t ƒ t ƒ st ‚ d  S(   Nc         s   s+   |  ]! } t  | ƒ d  t | t Vq d S(   i   N(   RG   R   (   Rƒ   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pys	   <genexpr>Ä  s    i   c         s   s+   |  ]! } t  | ƒ d  t | t Vq d S(   i   N(   RG   R   (   Rƒ   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pys	   <genexpr>Å  s    c         s   s   |  ] } t  ƒ  Vq d  S(   N(   RG   (   Rƒ   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pys	   <genexpr>Æ  s    i   i   i   i   t   tolgíµ ÷Æ°>(   R+   R   R!   R   t   meijer_minusR   R:   t   meijer_plusRK   R   R‚   R   R   R|   t   setRM   R}   RN   R   (   R…   R†   R‡   R‹   R“   t   b4t   b5RŠ   t   a4t   a5R   t   g2R|   RN   RM   R}   t   niqRŒ   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_meijerg¿  s2    (*0044888	5!!!c       
   C   sŽ  d „  t  d ƒ Dƒ \
 }  } } } } } } } } }	 t |  g | | g | g | | g t ƒ }
 t t | ƒ j |
 t ƒ t |  g | | g | d g | | g t ƒ t ƒ s° t ‚ t t |  ƒ j |
 t ƒ t |  d g | | g | g | | g t ƒ t ƒ st ‚ t t	 | ƒ j |
 t ƒ t |  g | | g | g | d | g t ƒ t ƒ sTt ‚ t t
 | ƒ j |
 t ƒ t |  g | d | g | g | | g t ƒ t ƒ s¦t ‚ t |  g | | g | g | | g d t ƒ } t | j |
 t ƒ t |  g | | g | d g | | g t ƒ t ƒ st ‚ t |  g | | g | g | | g d t ƒ } t | j |
 t ƒ t |  g | | g | g | d | g t ƒ t ƒ s˜t ‚ t |  g | | g | g | | g d t ƒ } t | j |
 t ƒ t |  d g | | g | g | | g t ƒ t ƒ st ‚ t |  g | | g | g | | g d t ƒ } t | j |
 t ƒ t |  g | d | g | g | | g t ƒ t ƒ sŠt ‚ d  S(   Nc         s   s   |  ] } t  | ƒ Vq d  S(   N(   RG   (   Rƒ   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pys	   <genexpr>è  s    i
   i   i    (   R+   R   R!   RK   R   R   R‚   R:   R   R   R   R	   R   R
   R   (   R…   R†   RŠ   R°   R±   R‡   R‹   R“   R®   R¯   R   R•   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_meijerg_shift_operatorsæ  s,    4*::::-I-I-I-c          C   s+  d „  }  |  t  g  d d g d d g g  t ƒ t t ƒ d ƒ sF t ‚ |  t  g  d d g d d g g  t ƒ t d d t t t ƒ d t d ƒ d d ƒ s¥ t ‚ |  t  g  d d g d d g g  t ƒ t d d t d t t ƒ d t d ƒ d d d	 t d ƒ st ‚ |  t  g  d d d d g d d d d g g  t ƒ t t ƒ d d	 d ƒ sdt ‚ |  t  d d g g  g  d d g t ƒ d t d t ƒ ƒ s¥t ‚ |  t  d d g d d g d d g d d g t ƒ t t t ƒ d t t d t ƒ d ƒ s	t ‚ |  t  t d ƒ d g d d g d d g t d ƒ d g t ƒ t t ƒ d d d ƒ sgt ‚ d
 „  } | g  d g d d g g  ƒ s”t ‚ | d d g g  g  d g ƒ s¸t ‚ | d d g d d d g d d d	 g d d g ƒ sñt ‚ | d d g d d d g d d d	 g d g ƒ s't ‚ d  S(   Nc         S   sc  d d l  m } m } | | | g ƒ \ } } |  } t |  ƒ }  |  | | t t ƒ d k  f | t d t ƒ d k  f | t f ƒ k sŠ t S|  j d j d | k o» |  j d j d | k sÂ t St	 ƒ  d } t |  j
 t | ƒ j ƒ  | j
 t | ƒ j ƒ  ƒ j ƒ  d k rt St |  j
 t d | ƒ j ƒ  | j
 t d | ƒ j ƒ  ƒ j ƒ  d k r_t St S(   Niÿÿÿÿ(   t   sympifyR   i   i    i
   g»½×Ùß|Û=(   RA   R¶   R   R   R£   R!   RD   RC   t   argsRG   RI   RU   (   t   mR"   R#   R¶   R   t   m_t   z0(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyRd     s    F4@Hi   i    i   i   i   iÿÿÿÿi   i   c         S   sl   t  |  | | | t ƒ } t | d t ƒ} | j t  ƒ r\ | j oT t | j ƒ d k r\ t St	 | | t ƒ S(   Nt   allow_hyperi   (
   R   R!   R   RD   RB   t   is_Piecewiset   lenR·   RC   RK   (   R|   RM   R}   RN   R¸   t   m2(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   u"  s
    .i   (   R   R!   R.   R:   R   (   Rd   R¿   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_meijerg_confluence  s     	=Y$JQA04^	$$9c          C   sÃ   d d l  m }  t d d f t d ƒ d f d f t ƒ } d } | t t d ƒ d t d	 t d ƒ d f t d
 ƒ d f t t t t ƒ ƒ } |  j	 t
 | ƒ | j ƒ  d d ƒ s¿ t ‚ d  S(   Niÿÿÿÿ(   t   RRg      @i   i   i   i    gwôÍûçÀg      à¿i   g      ð?gê-™—q=(   g      @i   (    (   i    (   RA   RÁ   R   R   R!   R   R8   R   R6   t   almosteqR   RU   R:   (   RÁ   R   R"   R   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_meijerg_with_Floats.  s
    +Sc       
   C   s;  d d l  m }  m } m } m } m } t t d t g t d g t	 ƒ t ƒ | t	 d t ƒ k si t
 ‚ t t d t t g t d t d g t	 ƒ t d ƒ | t	 d t ƒ k s¸ t
 ‚ t t d t t t g t d t d t d g t	 ƒ t d ƒ | t	 d t ƒ k st
 ‚ t t d g t g d t d g d t	 ƒ t d ƒ | t	 d t ƒ k sbt
 ‚ |  t t d d t g g  d g t g | t t ƒ t	 ƒ ƒ ƒ | t	 d t ƒ k s¾t
 ‚ |  t t d d t d t g g  d g t t g | t t ƒ t	 ƒ ƒ ƒ | t	 d t ƒ k s%t
 ‚ |  t t d d t d t d t g g  d g t t t g | t t ƒ t	 ƒ ƒ ƒ | t	 d t ƒ k s—t
 ‚ t t	 t d d g d g t	 ƒ ƒ | d t	 ƒ k sÔt
 ‚ t t	 t d d d g d d g t	 ƒ ƒ | d t	 ƒ k st
 ‚ t t	 t d d d d g d d d g t	 ƒ ƒ | d t	 ƒ k sZt
 ‚ t t d t d t d ƒ d g t d t d ƒ d g t	 ƒ ƒ d t t	 d d t d t | t	 d t ƒ k sÕt
 ‚ t d d d g d d g ƒ sùt
 ‚ t d d d t d	 g d d t g d
 d ƒs-t
 ‚ t d t t t t d	 g t d t d t d t g d t ƒsst
 ‚ d d l  m } t t t d ƒ d t d ƒ d t d ƒ d d g t d ƒ d t d ƒ d t d ƒ d g t d ƒ d ƒ ƒ | | d | t t ƒ d ƒ | d t d ƒ d ƒ ƒ k s7t
 ‚ d  S(   Niÿÿÿÿ(   R¡   R8   t   polylogR.   t   lerchphii   i   i   i
   i    iþÿÿÿi   RP   RO   (   t   Absi   (   RA   R¡   R8   RÄ   R.   RÅ   R   R   R"   R!   R:   R   R   R6   R   RV   R#   RC   RÆ   (   R¡   R8   RÄ   R.   RÅ   RÆ   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_lerchphi7  s6    (AL>6=&A-E=@F@;$4C3=c          C   sé  d „  t  d ƒ Dƒ \ }  } } } } xÒ t |  | | g | | g ƒ t g  |  | | | | g ƒ g D]” } t | ƒ } | j } | j | | ƒ k s˜ t ‚ | j j | ƒ | } | j | j }	 x5 t	 | |	 ƒ D]$ \ }
 } t
 |
 | | ƒ sÎ t ‚ qÎ Wqb Wd d l m }  m } m } t t d |  g d | g | ƒ ƒ |  | d |  | d d |  t |  d g | g | ƒ |  | d d |  d t |  g | g | ƒ k s«t ‚ t
 t t d | g d | g | ƒ ƒ t d | g d | g | ƒ | ƒ sùt ‚ t t d g d |  | g | ƒ ƒ t d	 |  | f | ƒ | t d
 |  d | f | ƒ d |  | | d t d |  d | d f | ƒ d |  | k s—t ‚ t
 t t d g d | | g | ƒ ƒ t d g d | | g | ƒ | ƒ såt ‚ d  S(   Nc         s   s   |  ] } t  ƒ  Vq d  S(   N(   RG   (   Rƒ   t   _(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pys	   <genexpr>f  s    i   iÿÿÿÿ(   R"   R#   R!   i   i   i   i   (    (    (    (   R+   R   R   R!   Rj   R:   Rl   Rn   Ro   Rp   RK   t	   sympy.abcR"   R#   R   R   (   R"   R#   R$   R@   t   eRh   R   R!   Rv   Rw   t   func1t   func2(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_partial_simpd  s(    %%	 !::K!}c           C   s~  t  t t t g t g d ƒ ƒ t t ƒ t t t t ƒ t t t ƒ t t t ƒ k sa t ‚ t  t t t g d t t g d ƒ ƒ t d t d ƒ t d t t ƒ t d t ƒ t d t d t ƒ k sÚ t ‚ t  t t t g d t t g d ƒ ƒ t d t d ƒ t d t t ƒ t d t ƒ t d t d t ƒ k sSt ‚ t  t d t t d g d t t d g t d g t d g d ƒ ƒ t d d t ƒ t t t d t d ƒ t d t t d t d ƒ t d t t d t d ƒ t d t t d t d ƒ k s,t ‚ t  t t g t g d ƒ ƒ d k sVt ‚ t t g t g d ƒ d k szt ‚ d  S(   Ni   iÿÿÿÿi   i    (	   R   R   R"   R#   R$   R4   R:   R   R!   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_hyperexpand_special€  s    C&S&SH‘*c          C   s|   d d l  m }  m } m } |  d d t ƒ} | t t d g g  | d g d g t ƒ ƒ ƒ | | d t ƒ k sx t ‚ d  S(   Niÿÿÿÿ(   t   SymbolR]   R1   RU   t   integeri   i    (	   RA   RÏ   R]   R1   RD   R   R   R!   R:   (   RÏ   R]   R1   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_Mod1_behaviorŽ  s    .c           C   sË  t  d d t d d t d g t d ƒ d d g ƒ s> t ‚ t  t j t d g t d ƒ d t d g d t ƒsz t ‚ t  g  t d g ƒ s– t ‚ t  t g t d t d g ƒ s¼ t ‚ t  t g t t j d t g ƒ så t ‚ t  t g t t j d t d g ƒ st ‚ t  t g t t j d t d g ƒ s?t ‚ t  t g t t j d t g ƒ sht ‚ t  t g t t j d t d g ƒ s•t ‚ t  t g t t j d t d g ƒ sÂt ‚ t  t j g t d t g ƒ sçt ‚ t  t j g t d t g ƒ st ‚ t  d g d t g ƒ s*t ‚ t  t t t j g d t t d t t d g ƒ set ‚ t  t t t j g t j d t d t t j g ƒ s¢t ‚ t  t g t d g d t ƒsÇt ‚ d  S(   Ni   i   i   RQ   (   RV   R   R   R:   R<   R"   RD   R#   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_misc–  s     ><&)--)--%%;=c           C   sÍ  t  t t g t j g ƒ s" t ‚ t  t d t g t j g ƒ sG t ‚ t  t d t g t d ƒ d g ƒ ss t ‚ t  t d t g t j g ƒ s˜ t ‚ t  t d t g t d ƒ d g ƒ sÄ t ‚ t  t d t g t d ƒ d g ƒ sð t ‚ t  t t t d ƒ d g d t d g ƒ s$t ‚ t  t t t d ƒ d g d t g ƒ sTt ‚ t  t t t d ƒ d g d t d g ƒ sˆt ‚ t  t t t d ƒ d g t d ƒ d g ƒ s¾t ‚ t  t t t d ƒ d g t d ƒ d g ƒ sôt ‚ t  t t d d g t d g ƒ st ‚ t  d t g d g ƒ s<t ‚ t  d t g t d g d t ƒsdt ‚ t  t g d t g ƒ sƒt ‚ t  t g d t d g ƒ s¦t ‚ t  t g d t d g ƒ sÉt ‚ d  S(   Ni   i   i   RO   (   RV   R"   R   R<   R:   R#   RC   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_1¬  s"    "%,%,,40466*(#c       
   C   s©  t  j }  t |  |  g |  g ƒ s) t ‚ t |  |  g d |  g ƒ sL t ‚ t |  |  g d |  g ƒ so t ‚ t |  |  g d |  g ƒ s’ t ‚ t |  d g |  g ƒ s± t ‚ xñ |  |  g D]â } x |  |  d d |  d d |  d d |  d g	 D]Q } xH |  |  d |  d |  d |  g D]$ } t | | g | g ƒ st ‚ qWqô WxU d d d d g D]A } x8 d d d d g D]$ } t | | g | g ƒ sut ‚ quWq\Wq¿ Wd  S(   Ni   i   i   i   i   i   (   R   R<   RV   R:   (   Rr   t   pRU   R¸   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_2Ç  s    	 ###5)&c          C   sÓ  t  r t d ƒ n  t j }  t t d ƒ d t d ƒ d g |  g ƒ sN t ‚ t t d ƒ d t d ƒ d g d |  g ƒ s„ t ‚ t t d ƒ d t d ƒ d g d |  g ƒ sº t ‚ t t d ƒ d t d ƒ d g |  g ƒ sì t ‚ t t d ƒ d t d ƒ d g d |  g ƒ s"t ‚ xª d d d d g D]– } x |  |  d d |  d d |  d d |  d d |  g
 D]V } xM d d |  d d |  d d |  d g D]$ } t | | g | g ƒ sŸt ‚ qŸWqqWq5Wd  S(	   Ns   Too slow for travis.i   i   i   i   i   i   i	   (   R(   R)   R   R<   RV   R:   (   Rr   RÔ   RU   R¸   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_3Ù  s    	26626<.c          C   s  t  j }  xò d |  d |  d |  g D]Õ } xw |  |  d |  d |  d |  g D]S } xJ d |  d d |  d d |  d g D]$ } t | | g | g ƒ sy t ‚ qy WqN WxR d d d d g D]> } x5 d d d g D]$ } t | | g | g ƒ sÎ t ‚ qÎ Wq¸ Wq% Wd  S(   Ni   i   i   i   i   i   (   R   R<   RV   R:   (   Rr   RÔ   RU   R¸   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_4ì  s    	")+&c          C   s  t  j }  xŠ d d d g D]y } xp t | d ƒ D]_ } xV d d d g D]E } x< t | d ƒ D]+ } t |  | | g | | g ƒ s[ t ‚ q[ WqE Wq/ Wq WxÎ |  d d |  d d |  d g D]¬ } x£ |  d |  d |  g D]Š } x |  d |  d |  g D]h } x_ |  d |  d |  g D]F } | | k r| | k rt |  | | g | | g ƒ sWt ‚ qqWqó WqÕ Wq· Wx£ |  d d |  d d |  d g D] } xx d d d g D]g } x^ |  d |  d |  g D]E } x< d d d g D]+ } t |  | | g | | g ƒ sÒt ‚ qÒWq¼WqžWqˆWd  S(   Ni   i   i   i   i   (   R   R<   R+   RV   R:   (   Rr   RÔ   t   qRR   R•   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_5ø  s"    	5'8'c          C   s  t  j }  xë d |  d |  g D]Õ } xÌ d d d g D]» } xU |  d d g D]D } x; d d d g D]* } t |  | | g | | g ƒ s` t ‚ q` WqJ WxZ d d d g D]I } x@ d |  d |  g D]* } t |  | | g | | g ƒ s½ t ‚ q½ Wq¢ Wq4 Wq Wx† d d g D]x } xo d d d g D]^ } xU d d d g D]D } x; d d d g D]* } t |  | | g | | g ƒ sFt ‚ qFWq0WqWqWt |  |  d |  g d |  d |  g ƒ s°t ‚ t |  d d |  g d |  d |  g ƒ sàt ‚ t |  d d g d d g ƒ st ‚ d  S(   Ni   i   i   i   (   R   R<   RV   R:   (   Rr   R¸   RU   RØ   RÔ   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_6  s"    	,4400c       
   C   sú   t  d g d g ƒ s t ‚ t j }  xB |  d |  d |  d |  g D]" } t  |  g | g ƒ sC t ‚ qC WxŠ |  |  d d |  d d |  d d |  d g	 D]Z } xQ |  |  d |  d |  d |  d d d d g	 D]! } t  | g | g ƒ sÍ t ‚ qÍ Wq˜ Wd  S(   Ni   i   i   i   i   i   i   (   RV   R:   R   R<   (   Rr   RU   R¸   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_7*  s    	% 55c       	   C   sx  t  j }  x d d d g D]} x d d d g D]p } xg t d | d ƒ D]R } xI |  d d |  d d |  d g D]' } t | | g | | g ƒ sp t ‚ qp WqI Wq/ Wx‚ d |  d |  g D]l } xc |  d d |  d d |  d g D]A } x8 d d d g D]' } t | | g | | g ƒ sõ t ‚ qõ Wqß Wq¸ Wq WxE|  |  d |  d |  g D](} x} d d d g D]l } xc |  d d |  d d |  d g D]A } x8 d d d g D]' } t | | g | | g ƒ s›t ‚ q›Wq…Wq^WxŸ |  d |  d |  g D]† } x} |  d |  d |  d g D]a } xX |  d d |  d d |  d g D]6 } | | k r.t | | g | | g ƒ sdt ‚ q.q.WqWqæWqHWd  S(   Ni   i   i   i   (   R   R<   R+   RV   R:   (   Rr   R"   R#   R$   R@   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_86  s(    	'-'1"'-!'c          C   sƒ   x: t  d ƒ D], }  t g  t |  ƒ d d g ƒ s t ‚ q Wx? t  d ƒ D]1 }  t g  d t |  ƒ d d g ƒ sJ t ‚ qJ Wd  S(   Ni	   i   i   i   (   R+   RV   R   R:   (   t   i(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_9Q  s    *c       	   C   sA  t  j }  x‹ |  |  d d |  d d |  d d |  d g	 D][ } xR d d d d g D]> } x5 t | d ƒ D]$ } t | g | | g ƒ sg t ‚ qg WqQ Wq8 Wx~ d d d d g D]j } xa |  d |  d |  d |  g D]A } x8 d d d d g D]$ } t | g | | g ƒ sè t ‚ qè WqÏ Wqª Wx‘ d |  d |  d |  g D]t } xk |  d d d |  d d |  d g D]F } t | g |  | g ƒ s‚t ‚ t | g d |  | g ƒ s^t ‚ q^Wq4WxQ |  d d d |  d d |  d g D], } t d |  g d |  | g ƒ sÐt ‚ qÐWt t  d ƒ d g t  d ƒ d t  d ƒ d g ƒ s=t ‚ d  S(   Ni   i   i   i   i   i   (   R   R<   R+   RV   R:   (   Rr   RÔ   R¸   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_10Y  s     	5*%*"****c           C   sä  t  t t t j g d t t d t t g ƒ s7 t ‚ t  t t t j g t d ƒ d d t d t t d ƒ d g ƒ s‚ t ‚ t  t d ƒ d t d ƒ d g t d ƒ d t d ƒ d d g ƒ sÎ t ‚ t  t d ƒ d t d ƒ d g t d ƒ d t d ƒ d d g ƒ st ‚ t  t d ƒ d t d ƒ d g t d ƒ d t d ƒ d d g ƒ sft ‚ t  t d ƒ d t d ƒ d g t d ƒ d t d ƒ d d g ƒ s²t ‚ t  d d g t d ƒ d d d g ƒ sàt ‚ d  S(   Ni   i   i   i   i   i   (   RV   R"   R   R<   R#   R:   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_11r  s    7KLLLLc           C   sƒ  t  g  t t t j d t g t ƒ s, t ‚ t  g  t t t j d t d g t ƒ s\ t ‚ t  g  t j t t t j g ƒ s„ t ‚ t  g  t d ƒ d t t t j g ƒ s³ t ‚ t  g  t d ƒ d t d ƒ d t d ƒ d g ƒ sï t ‚ t  g  t d ƒ d t d ƒ d d g ƒ s!t ‚ t  g  t d ƒ d t d ƒ d d g ƒ sSt ‚ t  g  t d ƒ d t d ƒ d t d ƒ d g ƒ st ‚ t  g  d d t d ƒ d g ƒ s·t ‚ t  g  d d t d ƒ d g ƒ sßt ‚ t  g  d t d ƒ d t d ƒ d g ƒ st ‚ t  g  t d ƒ d t d ƒ d t d ƒ d g ƒ sMt ‚ t  g  d t d ƒ d t d ƒ d g ƒ st ‚ d  S(   Ni   i   i   i   i   i   (   RV   R"   R   R<   RC   R:   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_12  s    )0(/<22<((2<c          C   s‰   t  j }  xy |  |  g D]j } xa |  d |  d |  d |  g D]A } x8 d d d d g D]$ } t | | g | g ƒ sU t ‚ qU Wq< Wq Wd  S(   Ni   i   i   i   i   i   (   R   R<   RV   R:   (   Rr   RÔ   R¸   RU   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_2F1’  s
    	%c          C   s  t  t t g t d g ƒ s" t ‚ t  d t g t g ƒ s@ t ‚ t  t t g t t t j g ƒ si t ‚ t  t t g t t t j g ƒ s’ t ‚ t  t t g t t t d ƒ d g ƒ sÂ t ‚ t  t t g t t d d g ƒ sì t ‚ t  t t g t t d d g ƒ st ‚ t  t t g t t d g ƒ s<t ‚ t  t t g t t d g ƒ sbt ‚ t  t t g d t g ƒ s„t ‚ t  t t g t j g ƒ s¥t ‚ t  t t g t d ƒ d g ƒ sÍt ‚ t  t d t g t g ƒ sït ‚ t  t d t g t g ƒ st ‚ t  t d t g t g ƒ s3t ‚ t  t t t d ƒ d g t g ƒ s_t ‚ t  d t g t g ƒ s}t ‚ t  d t g t d ƒ d g ƒ s¥t ‚ t  t d ƒ d t d ƒ d g d g ƒ s×t ‚ t d ƒ }  t  |  d d g |  d d g ƒ st ‚ t  |  d d g |  d d	 g ƒ s7t ‚ t  |  d d g |  d d
 g ƒ sat ‚ t  |  d d g |  d d g ƒ s‹t ‚ t  |  d d g |  d d g ƒ sµt ‚ t  |  d d g |  d d g ƒ sßt ‚ t  |  d d g |  d d g ƒ s	t ‚ t  |  d d g |  d d g ƒ s3t ‚ t  |  d d g |  d d	 g ƒ s]t ‚ t  |  d d d g |  d d g ƒ s‹t ‚ t  |  d d d g |  d d	 g ƒ s¹t ‚ t  |  d d d g |  d d g ƒ sçt ‚ t  |  d d d g |  d d g ƒ st ‚ t  |  d d d g |  d d
 g ƒ sCt ‚ t  |  d d d g |  d d
 g ƒ sqt ‚ t  |  d d d g |  d d	 g ƒ sŸt ‚ t  |  d d d g |  d d g ƒ sÍt ‚ t  |  d d d g |  d d g ƒ sût ‚ t  |  d d d g |  d d g ƒ s)t ‚ t  |  d d d g |  d d g ƒ sWt ‚ t  |  d d d g |  d d g ƒ s…t ‚ t  |  d d d g |  d d g ƒ s³t ‚ t  |  d d d g |  d d g ƒ sát ‚ t  |  d d	 d g |  d d g ƒ st ‚ d  S(   Ni   iÿÿÿÿi   i   i   i   i	   i   i   i   i   i   i   i   i   i   (   RV   R"   R#   R:   R$   R   R<   (   t   o(    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_fail_2F1œ  sX    "))0**&&"!(""",(2*********..............c           C   sÄ  t  t t t d ƒ d t t d ƒ d g t d ƒ d t d ƒ d g ƒ sT t ‚ t  t t t d ƒ d t t d ƒ d g t d ƒ d t d ƒ d g ƒ s¨ t ‚ t  t t t d ƒ d t t d ƒ d g t d ƒ d t d ƒ d g ƒ sü t ‚ t  t t t d ƒ d t t d ƒ d g d t d d t d d g ƒ sPt ‚ t  t j t j t j g d d g ƒ s~t ‚ t  t j t j d g t d ƒ d t d ƒ d g ƒ s½t ‚ t  t d ƒ d t d ƒ d d g t d ƒ d t d ƒ d g ƒ s	t ‚ t  t d ƒ d t d ƒ d d g t d ƒ d t d	 ƒ d g ƒ sUt ‚ t  t d ƒ d t d
 ƒ d d g t d ƒ d t d ƒ d g ƒ s¡t ‚ t  t d ƒ d t d ƒ d d g t d
 ƒ d t d ƒ d g ƒ sít ‚ t  t d ƒ d t d ƒ d d g t d
 ƒ d t d ƒ d g ƒ s9t ‚ t  t d ƒ d t d ƒ d d g t d ƒ d t d	 ƒ d g ƒ s…t ‚ t  t j d d g t d ƒ d t d ƒ d g ƒ sÀt ‚ d  S(   Ni   i   i   i   i   i   i	   i   i   i   i   i   (   RV   R"   R   R:   R<   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_fail_3F2Ó  s    TTTT.?LLLLLLc           C   sö  t  d t g t d d t t g ƒ s- t ‚ t  t d ƒ d g t d ƒ d d g ƒ s` t ‚ t  d g t d ƒ d t d ƒ d g ƒ s’ t ‚ t  t d ƒ d g t d ƒ d t d ƒ d g ƒ sÎ t ‚ t  t d ƒ d g t d ƒ d t d ƒ d g ƒ s
t ‚ t  d g t d ƒ d t d ƒ d g ƒ s<t ‚ t  d g t d ƒ d t d ƒ d g ƒ snt ‚ t  d g t d ƒ d t d ƒ d g ƒ s t ‚ t  t d ƒ d d g t d ƒ d t d ƒ d t d ƒ d g ƒ sìt ‚ t  t d ƒ d d g t d ƒ d t d ƒ d t d ƒ d g ƒ s8t ‚ t  g  t d ƒ d t d d ƒ g ƒ sgt ‚ t  g  t d ƒ d t d d ƒ g ƒ s–t ‚ t  g  t d ƒ d t d d ƒ g ƒ sÅt ‚ t  g  t t t j d t d g ƒ sòt ‚ d  S(   Ni   i   i   i   i   i   (   RV   R"   R#   R:   R   R<   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_prudnikov_fail_otherì  s    -32<<222LL///c          C   s?   t  d d g t g d ƒ }  t |  ƒ t d t k s; t ‚ d  S(   Niÿÿÿÿi   (   R   R!   R   R:   (   Rr   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_bug
  s    c          C   sk   t  d	 d
 d ƒ }  t |  ƒ t d d ƒ k s3 t ‚ t  d d d ƒ }  t |  ƒ t d d ƒ k sg t ‚ d  S(   Niûÿÿÿiýÿÿÿiüÿÿÿiúÿÿÿi   i   iùÿÿÿi   (   iûÿÿÿiýÿÿÿiüÿÿÿ(   iúÿÿÿiúÿÿÿ(   iúÿÿÿiùÿÿÿiûÿÿÿ(   iúÿÿÿiúÿÿÿ(   R   R   R9   R:   (   Rr   (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   test_omgissue_203  s    !N(v   t   randomR    Rf   R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   RA   R   R   R   R   R   R   R   R   R    RÉ   R!   R"   R#   R$   t   sympy.utilities.pytestR%   R&   R'   R(   R)   t   sympy.utilities.randtestR*   RK   t   sympy.core.compatibilityR+   R,   R-   R.   R/   R0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R;   R?   RD   RC   RV   RW   RX   RZ   R[   R\   R^   R_   RG   Rz   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à   Rá   Râ   Rä   Rå   Ræ   Rç   Rè   (    (    (    sD   lib/python2.7/site-packages/sympy/simplify/tests/test_hyperexpand.pyt   <module>   sr   ”	@"(^										!							B	'	)			-							
7	