ó
¡¼™\c           @   sc  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 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' d  d l( m) Z) m* Z* m+ Z+ m, Z, d  d l- m. Z. e d ƒ \ Z/ Z0 Z1 Z2 e d ƒ Z3 d „  Z4 d „  Z5 d	 „  Z6 d
 „  Z7 d „  Z8 d „  Z9 d „  Z: d „  Z; d „  Z< d „  Z= d „  Z> d „  Z? d „  Z@ d „  ZA d „  ZB e) d „  ƒ ZC d „  ZD d „  ZE d „  ZF d „  ZG e+ d „  ƒ ZH e) d „  ƒ ZI d „  ZJ d „  ZK e+ d „  ƒ ZL e+ d  „  ƒ ZM d! „  ZN d" S(#   iÿÿÿÿ(#   t   Rationalt   sqrtt   symbolst   sint   expt   logt   sinht   cosht   cost   pit   It   erft   tant   asint   asinht   acost   atant   Functiont
   Derivativet   difft   simplifyt   LambertWt   Eqt   Net	   Piecewiset   Symbolt   Addt   ratsimpt   Integralt   Sumt   besseljt   besselkt   besselyt   jnt   tanh(   t
   componentst   heurischt   heurisch_wrapper(   t   XFAILt   skipt   slowt	   ON_TRAVIS(   t	   integrates   x,y,z,nut   fc           C   sX  t  t t t ƒ t h k s" t ‚ t  d t t t ƒ t h k sH t ‚ t  t t ƒ t ƒ t t ƒ t h k su t ‚ t  t t ƒ t t t ƒ ƒ t ƒ t t ƒ t t ƒ t t t ƒ ƒ t h k sÊ t ‚ t  t t t t ƒ t ƒ t ƒ t t t t ƒ ƒ t t t ƒ h k st ‚ t  t t d d ƒ t t t ƒ ƒ t ƒ t t ƒ t t d d ƒ t t t ƒ ƒ t h k s{t ‚ t  t	 t ƒ t ƒ t t	 t ƒ h k s¨t ‚ t  t
 t	 t ƒ t ƒ t ƒ t t	 t ƒ t
 t	 t ƒ t ƒ h k sðt ‚ t  t	 t ƒ t t	 t ƒ t ƒ t ƒ t t	 t ƒ t
 t	 t ƒ t ƒ t
 t	 t ƒ t ƒ h k sTt ‚ d  S(   Ni   i   i6   (   R#   t   xt   yt   AssertionErrorR   R   R   R   R    R+   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_components   s    "&-"3 .):-%c        	   C   s@   t  t t t t t t t t ƒ ƒ ƒ t ƒ t ƒ s< t ‚ d  S(   N(   t
   isinstanceR*   R,   R   R   R.   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_issue_10680   s    c           C   si   t  d t ƒ t k s t ‚ t  t t ƒ t d d k s> t ‚ t  t d t ƒ t d d k se t ‚ d  S(   Ni   i   i   i   (   R$   R,   R.   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_polynomials    s    #c           C   sŸ  t  d t t ƒ t t ƒ k s% t ‚ t  d d t t ƒ t t d ƒ k sR t ‚ t  d t t t ƒ t ƒ t t t t ƒ ƒ k s‹ t ‚ t  d t d d t d d t ƒ d t d t d d ƒ d d t d t d d ƒ d g k sø t ‚ t  d t d d t d d t ƒ d t d t d d ƒ d k sEt ‚ t  d t d t ƒ d t k slt ‚ t  d t d t ƒ d d t d k s›t ‚ d  S(	   Ni   i   i   i   i   iþÿÿÿiÿÿÿÿi   (   R$   R,   R   R.   R   R-   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_fractions&   s    %-9_M'c           C   sÌ   t  t t ƒ t ƒ t t t ƒ t k s/ t ‚ t  t d t ƒ t ƒ t t t d ƒ t t t ƒ k sq t ‚ t  t t d ƒ t ƒ t t t d ƒ d t d t t t ƒ d t g k sÈ t ‚ d  S(   Ni   i   (   R$   R   R,   R.   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_log7   s    /Bc           C   s0  t  t t ƒ t ƒ t t ƒ k s' t ‚ t  t t ƒ t ƒ t t ƒ k sQ t ‚ t  t d t ƒ t ƒ t d t ƒ d k s„ t ‚ t  t t t ƒ t ƒ t t t ƒ t t ƒ k s½ t ‚ t  t t t d ƒ t ƒ t t d ƒ d k sô t ‚ t  t t d ƒ t ƒ d  k st ‚ t  d t t ƒ d t t d ƒ k sGt ‚ t  t d t t ƒ t d t t d ƒ d t t d ƒ d k s’t ‚ t  t t t t t d d f t d d f ƒ j	 t ƒ t t t t t d k sêt ‚ t  t
 t t t d d f ƒ j	 t ƒ t t t t ƒ k s,t ‚ d  S(   Ni   i   iþÿÿÿi   i   (   R$   R   R,   R.   t   NoneR   R   t   zR-   t   functionR   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_exp=   s    '*397&-KXc           C   s—  t  t t ƒ t ƒ t t ƒ k s( t ‚ t  t t t ƒ d t ƒ t t t t ƒ k s_ t ‚ t  t t ƒ t ƒ t t ƒ k s† t ‚ t  t t ƒ t ƒ t d t t ƒ d ƒ d t t t ƒ t ƒ t t t t t ƒ t ƒ t t g k sø t ‚ t  t t ƒ t t	 ƒ t ƒ t t ƒ t t	 ƒ k s4t ‚ t  t t ƒ t t	 ƒ t	 ƒ t t	 ƒ t t ƒ k spt ‚ t  t t ƒ t t ƒ t ƒ t t ƒ d d t t ƒ d d g k s¾t ‚ t  t t ƒ t t ƒ t ƒ t t t ƒ ƒ k sõt ‚ t  t t d t ƒ t ƒ t d t ƒ d t t d t ƒ d k sBt ‚ t  d t d t d t t ƒ t ƒ d t d t d t t ƒ d t t ƒ d t t t ƒ k s±t ‚ t  t
 t d ƒ t t d ƒ t ƒ d t t d t d ƒ t t d ƒ t d t d ƒ t
 t d ƒ t t t d ƒ t
 t d ƒ k sHt ‚ t  t t ƒ t t ƒ d d t ƒ t t t ƒ ƒ k sˆt ‚ t  d t t ƒ d t ƒ d t d ƒ t t d ƒ t t d ƒ d ƒ d k sát ‚ t  d t t ƒ t t ƒ t t ƒ d d t ƒ t t d ƒ t t ƒ d ƒ t t d ƒ t t ƒ d ƒ k sZt ‚ t  d t t ƒ t ƒ d t t t d ƒ ƒ k s“t ‚ d  S(   Ni   i   i   i1   i   i   i   (   R$   R   R,   R   R.   R	   R   R   R
   R-   R   R   R   R   R   R"   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_trigonometricL   s*    (7'*<<N7M1>$s@YH1c           C   s+  t  t t ƒ t ƒ t t ƒ k s' t ‚ t  t t ƒ t ƒ t t ƒ k sN t ‚ t  t t t ƒ t ƒ t t t ƒ t t ƒ k s‡ t ‚ t  t t t ƒ t ƒ t t t ƒ t t ƒ k sÀ t ‚ t  t t t d ƒ t ƒ t d t t d ƒ d t t d ƒ t t d t d ƒ d k s't ‚ d  S(   Ni   i   (   R$   R   R,   R   R.   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_hyperbolicl   s    ''99c           C   s[   t  t t ƒ t t ƒ t ƒ t t ƒ t t ƒ d t t ƒ t t ƒ d k sW t ‚ d  S(   Ni   (   R$   R   R,   R   R   R.   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_mixedw   s    c          C   si  t  d t t ƒ t ƒ d t t ƒ k s/ t ‚ t  d t t ƒ d t ƒ d t t ƒ k sb t ‚ t  t t ƒ d t ƒ d t t ƒ d d k s™ t ‚ t  t t ƒ t t t ƒ ƒ t ƒ d t t t ƒ ƒ d d k sâ t ‚ t d ƒ }  t  t |  t t ƒ ƒ t ƒ d |  d t |  t t ƒ ƒ d t t ƒ t |  t t ƒ ƒ |  k s[t ‚ t t |  t t ƒ ƒ t ƒ t d t t ƒ t t t ƒ |  ƒ |  d t t t ƒ |  ƒ |  d t	 |  d ƒ f d t
 f ƒ k sæt ‚ t d d t
 ƒ}  t t |  t t ƒ ƒ t ƒ d |  d t |  t t ƒ ƒ d t t ƒ t |  t t ƒ ƒ |  k set ‚ d  S(	   Ni   i   i   iþÿÿÿi   R-   i    t   positive(   R$   R   R,   R.   R   R   R   R%   R   R   t   True(   R-   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_radicals{   s    /37I;2T;c           C   s   t  t t ƒ t ƒ t t t ƒ t t d ƒ t t ƒ k sD t ‚ t  t t d ƒ t t ƒ t ƒ t t ƒ t t ƒ d d k sŒ t ‚ d  S(   Ni   i   (   R$   R   R,   R   R   R	   R.   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_specialŒ   s    Dc           C   s°   t  d t t t ƒ t t t ƒ k s- t ‚ t  d t t d ƒ t ƒ t t t d ƒ ƒ k sf t ‚ t t t  t t t t ƒ t ƒ t ƒ ƒ t t t t ƒ k s¬ t ‚ d  S(   Ni   i   (	   R$   R,   R-   R   R.   R   R   R   R6   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_symbolic_coeffs‘   s    -9c       	   C   sý   t  d ƒ }  t d t d |  t ƒ t t t t t t |  ƒ ƒ d t |  ƒ t t t t t |  ƒ ƒ d t |  ƒ t |  d ƒ f d t t f ƒ k s¦ t	 ‚ t  d d t ƒ}  t d t d |  t ƒ t
 t t |  ƒ ƒ t |  ƒ k sù t	 ‚ d  S(   NR-   i   i   i    iÿÿÿÿR<   (   R   R%   R,   R   R
   R   R   R   R=   R.   R   (   R-   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt"   test_heurisch_symbolic_coeffs_1130—   s    *9c           C   so  t  t d d t d ƒ t d g  ƒt t d d t d ƒ d t d ƒ t t d ƒ t ƒ d k so t ‚ t  t d d t d ƒ t d g  ƒt t d d t d ƒ d t d ƒ t t d ƒ t ƒ d k sÞ t ‚ t  d t d d t d ƒ t d g  ƒt d ƒ t t d ƒ t ƒ d k s3t ‚ t  d t d d t d ƒ t d g  ƒt d ƒ t t d ƒ t ƒ d k sˆt ‚ t  t d t d ƒ t d g  ƒt d t ƒ t t d ƒ t ƒ d k sÙt ‚ t  d t d d t d ƒ t d g  ƒt d t d	 ƒ d k s"t ‚ t  d t d d t d ƒ t d g  ƒt d t d	 ƒ d k skt ‚ d  S(
   Ni   i   i   t   hintsi   iùÿÿÿi	   i   i   (	   R$   R   R,   R   R.   R   R   R	   R   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_hacking¡   s    $K$K(-(- 1(!(c           C   s%   t  t t ƒ t ƒ d  k s! t ‚ d  S(   N(   R$   R+   R,   R5   R.   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_functionµ   s    c          C   s´   t  t t ƒ t ƒ }  t t t ƒ |  t ƒ t t ƒ d d k sH t ‚ t t t ƒ d |  t ƒ t t ƒ d d k s t ‚ t |  t t ƒ t ƒ t t t ƒ ƒ k s° t ‚ d  S(   Ni   i   (   R   R+   R,   R$   R.   R   (   t   df(    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt!   test_heurisch_function_derivative¸   s    37c          C   s€  d t  t }  t |  t ƒ t t t  ƒ k s3 t ‚ d t  t }  t |  t ƒ t t t  ƒ k sg t ‚ d t  t t  t }  t |  t ƒ t t t t  ƒ d t  t t t  ƒ d t  t t  d ƒ f d t t f ƒ k sã t ‚ t t d t  t t  t ƒ }  t |  t ƒ t t t d ƒ t d t d t  d ƒ t  d t t d ƒ t d t d t  d ƒ t k s|t ‚ d  S(   Ni   i   i    (	   R-   R,   R%   R   R.   R   R   R=   R   (   R+   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_heurisch_wrapperÄ   s    %&W 8c           C   sA   t  d t d t t ƒ d t ƒ t t t ƒ ƒ k s= t ‚ d  S(   Ni   i   (   R$   R,   R   R   R.   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_issue_3609Ñ   s    c          C   sÝ   d „  }  t  d d t  d d t  d d t  d t  d d t  d d t  d d t  d } d d t  d d t  d	 t  d	 t  d
 d t  d	 d t  t t  ƒ } |  t t | t  ƒ ƒ t  ƒ | k sÙ t ‚ d  S(   Nc         S   s@   |  j  r8 t g  |  j D] } | j | ƒ r | ^ q Œ  S|  Sd  S(   N(   t   is_AddR   t   argst   has(   t   exprR,   t   arg(    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt
   drop_constÛ   s    	/i   i   i   i   i   i   i   i   i   (   R,   R   R   R$   R.   (   RN   R+   t   g(    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_pmint_rat×   s    	ZLc          C   s€   t  t t  ƒ t t  ƒ d t t  ƒ }  t  d d t  t t  ƒ t t t  ƒ d d ƒ d } t |  t  ƒ | k s| t ‚ d  S(   Ni   i   (   R,   R   R   R$   R.   (   R+   RO   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_pmint_trigæ   s    (9c          C   sÈ   t  r t d ƒ n  d t t t t ƒ t t t ƒ t t ƒ d t t t ƒ t t ƒ d t }  t t t t ƒ t t ƒ ƒ d t t t ƒ t t ƒ } t t |  t ƒ ƒ | k sÄ t ‚ d  S(   Ns   Too slow for travis.i   i   (   R)   R'   R,   R   R   R   R$   R.   (   R+   RO   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_pmint_logexpì   s
    T<c          C   sÌ   t  t d ƒ t t ƒ t t ƒ d t t ƒ d t t ƒ d }  t t ƒ t t t ƒ d ƒ d t t ƒ t t t ƒ d ƒ d t t ƒ d t t ƒ d } t t |  t ƒ ƒ | k sÈ t ‚ d  S(   Ni   i   i   i   i   (	   R   R,   R   R   R	   R   R   R$   R.   (   R+   RO   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_pmint_erfø   s    Ebc          C   sM   t  t ƒ }  t t  t ƒ t t t  t ƒ } t |  t ƒ | k sI t ‚ d  S(   N(   R   R,   R$   R.   (   R+   RO   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_pmint_LambertWÿ   s    "c          C   s  t  t d t ƒ t  t t ƒ }  t t t ƒ t t  t t ƒ ƒ } t |  t ƒ | k s^ t ‚ t t  t t ƒ t t  t d t ƒ t }  t  t t ƒ } t |  t ƒ | k s´ t ‚ t t d t ƒ t t t ƒ }  t t t ƒ t t t t ƒ ƒ } t |  t ƒ | k st ‚ d  S(   Ni   (   R   t   nuR,   R   R$   R.   R!   (   R+   RO   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_pmint_besselj  s     #, #c          C   sI  t  r t d ƒ n  t t t t ƒ t t d t ƒ }  d t t t t ƒ t t d d t ƒ d t t t d t ƒ t t d t ƒ d } t |  t ƒ | k s¬ t ‚ t t t t ƒ t t d t ƒ }  d t t t t ƒ t t d d t ƒ d t t t d t ƒ t t d t ƒ d } t |  t ƒ | k sEt ‚ d  S(   Ns   Too slow for travis.i   iþÿÿÿi   i   i   (	   R)   R'   R,   R   RU   R    R$   R.   R   (   R+   RO   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_pmint_bessel_products  s    $Z$Zc          C   s»   t  r t d ƒ n  d „  }  d |  t ƒ d t |  t ƒ ƒ t |  t ƒ d |  t ƒ t |  t ƒ } t t t t t ƒ ƒ ƒ t t t t ƒ ƒ ƒ } t | t ƒ | k s· t	 ‚ d  S(   Ns   Too slow for travis.c         S   s   t  t |  ƒ ƒ S(   N(   R   R   (   R,   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   omega*  s    i   i   (
   R)   R'   R,   R   R   R   R   R   R$   R.   (   RX   R+   RO   (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_pmint_WrightOmega&  s    	N2c           C   sc   t  t d d t d ƒ t d g  ƒd t t d t d d ƒ d t d t ƒ k s_ t ‚ d  S(   Ni   g      Ð?i   RB   g      à?g      ð?(   R$   R   R,   R   R.   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   test_RR2  s    $N(O   t   sympyR    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"   t   sympy.integrals.heurischR#   R$   R%   t   sympy.utilities.pytestR&   R'   R(   R)   t   sympy.integrals.integralsR*   R,   R-   R6   RU   R+   R/   R1   R2   R3   R4   R8   R9   R:   R;   R>   R?   R@   RA   RC   RD   RF   RG   RH   RP   RQ   RR   RS   RT   RV   RW   RY   RZ   (    (    (    sB   lib/python2.7/site-packages/sympy/integrals/tests/test_heurisch.pyt   <module>   s@   Ü"							 						
								