ó
¡¼™\c           @   sâ  d  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 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/ m0 Z0 d d l1 m2 Z2 d d l3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 e d ƒ \ Z: Z; Z< e d ƒ Z= d „  Z> d	 „  Z? d
 „  Z@ d „  ZA d „  ZB d „  ZC d „  ZD d „  ZE d „  ZF d „  ZG d „  ZH d „  ZI d „  ZJ d „  ZK d „  ZL d „  ZM d „  ZN d „  ZO d „  ZP d „  ZQ d „  ZR d „  ZS d „  ZT d „  ZU d  „  ZV d! „  ZW d" „  ZX d# „  ZY d$ eZ f d% „  ƒ  YZ[ d& „  Z\ d' „  Z] d( „  Z^ d) „  Z_ d* „  Z` d+ „  Za d, „  Zb d- S(.   s?   Most of these tests come from the examples in Bronstein's book.iÿÿÿÿ(   t   Polyt   It   St   Functiont   logt   symbolst   expt   tant   sqrtt   Symbolt   Lambdat   sint   Eqt   Net	   Piecewiset   factort
   expand_logt   cancelt   expandt   difft   pit   atan(   t   gcdex_diophantinet   frac_int
   as_poly_1tt
   derivationt   splitfactort   splitfactor_sqft   canonical_representationt   hermite_reducet   polynomial_reducet   residue_reducet   residue_reduce_to_basict   integrate_primitivet%   integrate_hyperexponential_polynomialt   integrate_hyperexponentialt!   integrate_hypertangent_polynomialt   integrate_nonlinear_no_specialst   integer_powerst   DifferentialExtensiont   risch_integratet   DecrementLevelt   NonElementaryIntegralt   recognize_log_derivativet   recognize_derivativet   laurent_series(   t   raises(   t   xt   tt   nut   zt   at   ys   t:3t   ic           C   sÃ   t  t t d d t d d t d d t d ƒ t t d t d d t d ƒ t t d d ƒ ƒ t t d d t d d ƒ t t d d	 t d d
 t d d ƒ f k s¿ t ‚ d  S(   Ni   i   i   i   i   i   i   i   i   i   i
   (   R   R    R/   t   AssertionError(    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_gcdex_diophantine   s    45c           C   s€  t  t t d t t t ƒ t ƒ t t t t t ƒ t t t ƒ f k sP t ‚ t  t d t t t ƒ t t t t t ƒ t t t ƒ f k s— t ‚ t  t t d t t t ƒ t t d t ƒ f t ƒ t t t t t ƒ t d t t t ƒ f k st ‚ t t d „  ƒ t  t d d t t d t d t d t ƒ t d t ƒt t d t ƒ t t d t ƒ f k s|t ‚ d  S(   Ni   c           S   s   t  t d t t ƒ t t ƒ S(   Ni   (   R   R/   R   R0   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   <lambda>    t    i   R   (   R   R    R/   R0   R6   R.   t
   ValueErrort   True(    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_frac_in   s    !//47;c           C   sä  t  d t t t t ƒ t t d t t t ƒ t t d t t t ƒ g k sT t ‚ t  d t d t d t t ƒ t d t d t d t t ƒ t d t d t d t t ƒ g k sÀ t ‚ t  d t d ƒ d t t t ƒ t d t d ƒ d t t t ƒ t d t d ƒ d t t t ƒ g k s2t ‚ t  d t d ƒ d t t t t ƒ t t d t d ƒ d t t t ƒ t t d t d ƒ d t t t ƒ g k s°t ‚ t  t d ƒ t t ƒ t d t t ƒ k sàt ‚ d  S(   Ni   i   i   i    (   R   R0   R2   R    R6   R   R   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_as_poly_1t%   s    =M!Q%Yc       	   C   sû  t  d t d t d d t d d t d t d d t d d t d t d d t d t d d t d t d d d t d t d t d d t t ƒ }  t d	 i t  d t ƒ t  t d d d t t d d t t ƒ g d
 6ƒ } t |  | ƒ t  d t d t d d t d d t d t d d t d d t d t d d t d d t d d t d t d d d t d d t d t d d d t d t d d t d d t t d d t d d t t ƒ k s
t ‚ t t  d t ƒ | ƒ t  d t ƒ k s7t ‚ t t  t t ƒ | ƒ | j k s^t ‚ t t  t d d t t d d t d t d t ƒ | ƒ t  d t d d t t d d d t d t d t d d t d t d t d d ƒk st ‚ t d	 i t  d t ƒ t  d t t ƒ t  t t ƒ g d
 6ƒ } t t  t t t t ƒ | ƒ t  t t t t t t t ƒ k sŒt ‚ t t  t t t t ƒ | d t ƒt  d t t t ƒ k sÏt ‚ t d	 i t  d t ƒ g d
 6ƒ } t t  t t ƒ | ƒ t  d t ƒ k st ‚ t t d t d | d t ƒd d d t t d k s_t ‚ t d	 i t  d t ƒ t  t t ƒ g d
 6ƒ } t t d t d | d t ƒd t d d t t d k sÒt ‚ t t d | d t ƒt k s÷t ‚ d  S(   Ni   i   iüÿÿÿi   iýÿÿÿi   i   i   t	   extensiont   Diìÿÿÿi   i   i   i   i   iûÿÿÿi   i   i
   i    iþÿÿÿt   domains   ZZ(x)t   coefficientDt   basic(	   R    R/   R0   R'   R   R6   t   dt   t1R;   (   t   pt   DE(    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_derivation1   s(    ¬OÓ*-'=j>I# "-A.Ec       	   C   s   t  d t d t d d t d d t d t d d t d d t d t d d t d t d d t d t d d d t d t d t d d t t d	 t ƒ}  t d
 i t  d t ƒ t  t d d d t t d d t t ƒ g d 6ƒ } t |  | ƒ t  d t d t d d t d d t d t d d t d d t d t d t d t ƒ t  t d d t t d d t d t d t d d ƒf k s½t ‚ t t  t t ƒ | ƒ t  t t ƒ t  d t ƒ f k sùt ‚ t  d t d t d d t d t d t t d d t d t d d t d t d t d t t d t d t ƒ } t d
 i t  d t ƒ t  d t t ƒ g d 6ƒ } t | | d t ƒt  t t t d t t d t d t ƒ t  t d d t d t d t ƒ f k s t ‚ t | | d t ƒt  t t t d t t d t d t ƒ d f f t  t d d t d t d t ƒ d f f f k s¤t ‚ t t  d t ƒ | ƒ t  d t ƒ t  d t ƒ f k sàt ‚ t t  d t ƒ | ƒ t  d t ƒ d f f d f k st ‚ d  S(   Ni   i   iüÿÿÿi   iýÿÿÿi   i   i   t   fieldR>   R?   iøÿÿÿi   R@   s   ZZ(x)i   RA   i    (    (	   R    R/   R0   R;   R'   R   R6   R2   R   (   RE   RF   t   r(    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_splitfactorJ   s    ²Oª<ƒ2`r<c          C   sÉ  t  d i t d t ƒ t d t d t ƒ g d 6ƒ }  t t t t t ƒ t t d t ƒ |  ƒ t d t ƒ t d t ƒ t d t ƒ f t t t t ƒ t t d t ƒ f f k s¹ t ‚ t  d i t d t ƒ t t d d t ƒ g d 6ƒ }  t t t d t d t d t d t ƒ t t d d d t ƒ |  ƒ t d t ƒ t t d t d t d t d t ƒ t t d d t d	 d t d d t ƒ f t d t ƒ t d t ƒ f f k sÅt ‚ d  S(
   NR>   i   i   R?   i    i   i   i   i   (   R'   R    R/   R0   R   R6   (   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_canonical_representation[   s    6) "6+4c       
   C   s“  t  d i t d t ƒ t t d d t ƒ g d 6ƒ }  t t t t t ƒ t t d t ƒ |  ƒ t t t ƒ t t t ƒ f t d t ƒ t d t ƒ f t t t ƒ t d t ƒ f f k sÁ t ‚ t  d i t d t ƒ t t d t t d t d t d t ƒ g d 6ƒ }  t t t d t d t t d t d t d t t d d t d t d t d t t d d t ƒ t t d t d t d t d d t d t d t d t d	 d t ƒ |  ƒ t t d d t ƒ t d t d d t d d t ƒ f t d
 t d t d t d t d d t t ƒ t d t d t d t d d t d t ƒ f t t t d t ƒ t t t ƒ f f k sªt ‚ t  d i t d t ƒ t d t t ƒ g d 6ƒ }  t d
 d t t d d t t d d t d t d t t d t ƒ } t t t d	 d t d t d d	 t d t d d t d t d t d t d t ƒ } t | | |  ƒ t d t d t d t t ƒ t d t d d t t d d t d t d d t d t t ƒ f t d t ƒ t d t ƒ f t d t ƒ t d t ƒ f f k sMt ‚ t t t d d t d t ƒ t t t d d t t t t ƒ |  ƒ t d t ƒ t t d t ƒ f t d t ƒ t d t ƒ f t d t ƒ t t t ƒ f f k süt ‚ t t t d t d	 d d t d t d t d d d t d t d d t t t d t d t ƒ t t d t d	 d t d t d d t ƒ |  ƒ t t d t t d d t ƒ t t d t d t t ƒ f t d t ƒ t d t ƒ f t d t ƒ t t d t ƒ f f k s*t ‚ t t d
 d t t d d t t d d t d t d t t d t ƒ t t t d	 d t d t d d	 t d t d d t d t d t d t d t ƒ |  ƒ t d t d t d t t ƒ t d t d d t t d d t d t d d t d t t ƒ f t d t ƒ t d t ƒ f t d t ƒ t d t ƒ f f k st ‚ d  S(   NR>   i   i   R?   i    i   i   i   i   iþÿÿÿiÿÿÿÿiüÿÿÿi	   iýÿÿÿ(   R'   R    R/   R0   R   R6   R1   (   RF   R3   RC   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_hermite_reduceh   sF    6)bOlV<g22Ock*+*m6?.Lfkc          C   sÆ   t  d i t d t ƒ t d t d t ƒ g d 6ƒ }  t t d t t t d t ƒ |  ƒ t t t ƒ t t t t ƒ f k s† t ‚ t t d t ƒ |  ƒ t d t ƒ t d t ƒ f k sÂ t ‚ d  S(   NR>   i   i   R?   i    (   R'   R    R/   R0   R   R6   (   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_polynomial_reduce—   s
    6%+c       	   C   sX  t  d i t d t ƒ t d t ƒ g d 6ƒ }  t d t ƒ } t t d t d d d t ƒ } t t d d t ƒ } d } t | | | | |  ƒ t d t d d t d d t d	 t ƒ t t d
 t d d t d d t d t d t ƒ t d t d d t d t ƒ t d t d d t d
 d	 t d t ƒ g f k sTt ‚ d  S(   NR>   i   R?   i$   i   iýÿÿÿi   i   i   i   i   (   R'   R    R/   R0   R-   R6   (   RF   R3   RC   t   Ft   n(    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_laurent_seriesŸ   s    .#dc          C   s†  t  d i t d t ƒ g d 6ƒ }  t d t ƒ } t t d t d d d t ƒ } t | | |  ƒ t k sr t ‚ t  d i t d t ƒ t d t t ƒ g d 6ƒ }  t d t ƒ } t t d d t ƒ } t | | |  ƒ t k sè t ‚ t t t t t ƒ t d t ƒ |  ƒ t k st ‚ t  d i t d t ƒ t t d d t ƒ g d 6ƒ }  t t t t ƒ t d t ƒ |  ƒ t k s‚t ‚ d  S(   NR>   i   R?   i$   i   (   R'   R    R0   R,   t   FalseR6   R/   R;   (   RF   R3   RC   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_recognize_derivativeª   s    "#246c          C   s‡  t  d t d d t t d t t d t t ƒ }  t  d t t t t d t ƒ } t d i t  d t ƒ t  t t ƒ g d 6ƒ } t |  | | t ƒ t k s© t ‚ t d i t  d t ƒ t  d t t ƒ g d 6ƒ } t t  t d t ƒ t  t t t ƒ | ƒ t k st ‚ t t  d t ƒ t  t d d t ƒ | ƒ t k sKt ‚ t d i t  d t ƒ g d 6ƒ } t t  d t ƒ t  t d d t ƒ | ƒ t k s¥t ‚ t t  d t ƒ t  t d t t ƒ | ƒ t k sÝt ‚ t d i t  d t ƒ t  t d d t ƒ g d 6ƒ } t t  d t ƒ t  t d d t ƒ | ƒ t k sKt ‚ t t  d t ƒ t  t d t t ƒ | ƒ t k sƒt ‚ d  S(   Ni   i   R>   i   R?   (	   R    R/   R0   R'   R+   R2   R;   R6   RQ   (   R3   RC   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_recognize_log_derivative¸   s    7#.!288"8868c       
   C   sz  t  d t d t t d t ƒ }  t  t d t d t t ƒ } t d i t  d t ƒ t  d t t ƒ g d 6t g d 6ƒ } t |  | | t d t ƒt  t d t d ƒ d t ƒ t  d d t t d	 t d d t d d t d t d t t t t d d t d t d d t t d t ƒ f g t f k sHt	 ‚ t |  | | t d t
 ƒt  t d t d ƒ d t ƒ t  t d t t t ƒ f g t f k s®t	 ‚ t t  d
 t t ƒ t  t d d t ƒ | t d t ƒt  t d d t ƒ t  d
 t t t d t t ƒ f g t
 f k s0t	 ‚ t t  d
 t t ƒ t  t d d t ƒ | t d t
 ƒ} | t  t d d t ƒ t  t t t ƒ f g t
 f k s¨t	 ‚ t | d | t ƒ t d t t ƒ ƒ t d t t ƒ ƒ k sït	 ‚ t d i t  d t ƒ t  t d t t d t d t d t ƒ g d 6ƒ } t t  d
 t d t d d t d t d t d t t ƒ t  t d d t d d t ƒ | t ƒ t  t t d ƒ d t d d ƒt  t d d t d d t d d ƒf g t
 f k st	 ‚ t d i t  d t ƒ t  d t d t ƒ g d 6ƒ } t t  d
 t t d t d t ƒ t  t d d t t d t d t ƒ | t ƒ t  t d t d ƒ d t ƒ t  t t d t t ƒ f g t
 f k sÜt	 ‚ t d i t  d t ƒ t  t t ƒ g d 6ƒ } t t  t t ƒ t  t t d ƒ t ƒ | t ƒ t  t d t ƒ t  t t d ƒ t ƒ f g t
 f k svt	 ‚ d  S(   Ni   i   R>   i   R?   t   Tfuncst   inverti   i   iþÿÿÿi    iÿÿÿÿR@   t   QQt   EX(   R    R0   R/   R'   R   R   R2   RQ   R   R6   R;   R    R1   R   (   R3   RC   RF   t   ans(    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_residue_reduceÉ   s0    #<!‘N6L9?GO?)^6#1N..c       
   C   sP  t  d d t t d d t d t d d t d t d t d t ƒ }  t  d t ƒ } t d i t  d t ƒ t  d t d t ƒ t  t d t d t ƒ g d 6t t t t t t ƒ ƒ ƒ g d 6ƒ } t	 |  | | ƒ t d t t ƒ ƒ t t ƒ t t t ƒ ƒ d t d t
 f k s't ‚ t  t d t d t d t t d t t ƒ }  t	 |  | | ƒ t t t ƒ t t t ƒ ƒ d t
 f k s›t ‚ t  t t ƒ }  t  d t ƒ } t d i t  d t ƒ t  d t t t ƒ g d 6t t t t d ƒ ƒ g d 6ƒ } t	 |  | | ƒ d t t t d ƒ t ƒ t f k sFt ‚ t d i t  d t ƒ t  t t ƒ g d 6t g d 6ƒ } t	 |  | | ƒ t t ƒ d t
 f k s«t ‚ t  d t d	 d
 t d d t d d t d d t d d t d t ƒ }  t  d t d	 d t d d t d d t ƒ } t	 |  | | ƒ d d
 t t ƒ d d t d t ƒ t d t d t ƒ ƒ d t
 f k s•t ‚ t d i t  d t ƒ t  t t ƒ t  t t t ƒ g d 6t t t t t t ƒ ƒ ƒ g d 6ƒ } t	 t  d t t d t ƒ t  d t ƒ | ƒ t d t t ƒ ƒ d t
 f k sJt ‚ t d i t  d t ƒ t  t t ƒ t  t t t ƒ g d 6t t t t t t ƒ ƒ ƒ g d 6ƒ } t	 t  d t d ƒ d t t d ƒ d t t t d ƒ t ƒ t  d t d ƒ t d t d ƒ d t t d ƒ t t ƒ | ƒ d t t t ƒ ƒ d t d ƒ t t d ƒ d t
 f k sut ‚ t d i t  d t ƒ t  t t ƒ g d 6t g d 6ƒ } t	 t  t d d t t ƒ t  d t ƒ | ƒ d d t t d t t ƒ d d t
 f k st ‚ t	 t  d t t ƒ t  t t ƒ | ƒ t t ƒ d t
 f k sUt ‚ t	 t  t t ƒ t  t d t ƒ | ƒ d t t d t t ƒ t ƒ t f k s©t ‚ t d i t  d t ƒ t  d t t ƒ t  d t t t ƒ g d 6t t t t t d ƒ ƒ g d 6ƒ } t	 t  d t d d t d d	 t d t t d d t t d d t t d	 d t t d d t t d d t t d t t d t d d t d	 d t d d t d d t d d t d t d t d d t t d d t t d	 d t t d d t t d d t t d t t d d t t d t d d t d d t d	 d t d d t d d t d d	 t d t d t d d t t d d t t d	 d t t d d	 t t d d
 t t d d t t d t t d t d
 d t d d t d d t d	 d t d d t d d t d t d d t t d t t d d t t d	 d t t d d t t d t t d d t d d t d	 d t d d t d t d t d t ƒ t  d t d d t d d	 t d t t d d t d d t d d t d	 d t d d t d d	 t d d t d t t d d t d d t d d t d d t d	 d t d d t d d t d d t d t d d t d
 d t d d t d d t d d	 t d	 d t d t d d t d t d t d
 d t d d	 t d	 t d t ƒ | ƒ \ } } } t | ƒ t d t t ƒ t t t d ƒ d t d d k s	t ‚ | | f t t t d ƒ t t d ƒ d t ƒ t f k sLt ‚ d  S(   Ni   i   i   R>   R?   RT   i    i   i   i
   i   i   i   i   i   i#   i   iÿÿÿÿiåÿÿÿi	   i¢   i   i$   i   i   iúÿÿÿi   i   i   (   R    RD   R0   R'   R/   R   R
   R5   R   R#   R;   R6   R*   RQ   R   t   t0R   (   R3   RC   RF   t   elemt   nonelemt   b(    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_integrate_hyperexponentialæ   s^    O)GJ320#+8-S3U8(U9)%`D8-6% %/@&	ÿ ÿ ÿ ÿ œIc          C   s?  t  d t d t d t d t d t d t d t d t d d t d t d d	 t d
 t d d t d t d d t d t d d t d t d d t d t d d t d t d d t d t d d	 t d t d d t d t d d t d t d t d t d t d t d d t d t d d t d t d t d t d
 d t d d t d t d t d
 t d d t d t d d t d t d d t d t d d t d t d d t d t d t d t d t d t d d t d t d t d t d t d t d t d t d d t d t d d	 t d
 t d d t d t d d t d t d d t d t d d t d t d d t d t d d t d t d d	 t d t d d t d t d d t d t d d t d t d d t d t d d t d t d d t d t d d t d d t d
 d t d d t d t d t d
 t d d t d t d d t d t d d t d t d d t d t d d t d t d t d t d t d t d t d t d t d t t t d t d t d t d t d d t d t d t d t d d t d t d t d t d t d t t d t ƒ}  t d i t  d t ƒ t  d t t ƒ t  d t t t ƒ g d 6ƒ } t |  | t ƒ t  t t t d d t d t t t ƒ t  d t t t d t d t ƒ t f k sËt	 ‚ t d i t  d t ƒ t  t t ƒ g d 6ƒ } t t  d t ƒ | t ƒ t  d t ƒ t  d t ƒ t f k s;t	 ‚ d  S(   Niäÿÿÿi   i   i   i	   i   i   i   iT   i
   iŒ   i   i   i   i   i   i   iøÿÿÿi8   iF   i   i(   iþÿÿÿiüÿÿÿR   R>   i   R?   i    (
   R    R/   RZ   RD   R2   RQ   R'   R"   R;   R6   (   RE   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt*   test_integrate_hyperexponential_polynomial)  s    ÿ ÿ ÿ ÿ gKcFB .c          C   s$  t  d ƒ \ }  } t |  t t ƒ } t | j | j | ƒ t t t t |  ƒ ƒ t |  ƒ t	 t |  ƒ d ƒ f t t
 f ƒ d t
 f k s t ‚ t |  | t t ƒ } t | j | j | ƒ t t | t t |  ƒ ƒ | t |  ƒ t	 | t |  ƒ d ƒ f t t
 f ƒ d t
 f k st ‚ t t |  t ƒ t ƒ } t | j | j | ƒ t t |  t ƒ |  t	 |  d ƒ f t t
 f ƒ d t
 f k st ‚ t t t |  t ƒ t ƒ } t | j | j | ƒ t |  t d t |  t ƒ |  d t	 |  d d ƒ f t d d t
 f ƒ d t
 f k s"t ‚ t t d t |  t ƒ t ƒ } t | j | j | ƒ t t d |  d d |  t d t |  t ƒ |  d t	 |  d d ƒ f t d d t
 f ƒ d t
 f k sÌt ‚ t t t t t ƒ } t | j | j | ƒ t t t t ƒ t ƒ t t ƒ t	 t t ƒ d ƒ f t t
 f ƒ t t
 f k sNt ‚ t t t t t d t t ƒ } t | j | j | ƒ t t d t t ƒ t ƒ t t ƒ d t t t ƒ t ƒ t t ƒ d t t ƒ d t	 d t t ƒ d d ƒ f d t t
 f ƒ t t
 f k s t ‚ d  S(   Ns   a bi    i   i   i   (   R   R'   R/   R#   t   fat   fdR   R   R   R   R;   R6   R4   R2   (   R3   R]   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt1   test_integrate_hyperexponential_returns_piecewiseH  s4    S_A]!H)S#!Qc          C   sÏ   t  d ƒ \ }  } } t d t d | d | ƒ d t | d t t d | d ƒ t d ƒ k so t ‚ t |  | | |  | d | ƒ t | t |  ƒ ƒ t |  | d ƒ t |  ƒ k sË t ‚ d  S(   Ns   a t si   i   (   R   R(   R   R   R6   R   (   R3   R0   t   s(    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_issue_13947f  s
    = c       	   C   sy  t  d i t d t ƒ t d t t ƒ g d 6t g d 6ƒ }  t t t t ƒ t d t ƒ |  ƒ t t t ƒ d t f k s t ‚ t t t t ƒ t t t ƒ |  ƒ d t t t t ƒ t ƒ t	 f k sË t ‚ t  d i t d t ƒ t d t t
 ƒ t d t d t ƒ g d 6t t t t t d ƒ ƒ g d 6ƒ }  t t t
 t ƒ t t t ƒ |  ƒ d t t t ƒ t d t ƒ t ƒ t	 f k s‡t ‚ t  d i t d t ƒ t d t t
 ƒ t d t t
 t ƒ g d 6t t t t t t ƒ ƒ ƒ g d 6ƒ }  t t t t ƒ t t
 t ƒ |  ƒ d t t t t ƒ ƒ t t ƒ t ƒ t	 f k sGt ‚ t  d i t d t ƒ t d t t ƒ g d 6t g d 6ƒ }  t t t d t d d t d t t d d t d d t t t d t t ƒ t t d t d	 d	 t d t d d
 t d t d d	 t d t t d t ƒ |  ƒ d t t ƒ d t d t t ƒ d t ƒ t	 f k sut ‚ d  S(   NR>   i   R?   RT   iÿÿÿÿi    i   i   i   i   (   R'   R    R/   R0   R   R!   R;   R6   R*   RQ   RD   t   t2R
   R5   RZ   (   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_integrate_primitivem  s$    ,CL@&!5@(!7,T[c          C   s0  t  d i t d t ƒ t t d d t ƒ g d 6ƒ }  t t t d t t d t ƒ |  ƒ t t t ƒ t t d t ƒ f k s† t ‚ t  d i t d t ƒ t t t d d t ƒ g d 6ƒ }  t t t d t ƒ |  ƒ t d d t t d d d t t d t ƒ t d d t t ƒ f k s,t ‚ d  S(   NR>   i   i   R?   i   i   (   R'   R    R/   R0   R$   R6   R3   (   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt&   test_integrate_hypertangent_polynomial„  s    6%+:c       
   C   sÙ  t  t d t d t t d t d t d t t d d t d t d t d t t d d t ƒ t  t d t d t d t d d t d t d t d t d d t ƒ }  } t d ƒ } t d i t  d t ƒ t  t d t t d t d t d t ƒ g d	 6| g d
 6ƒ } t |  | | ƒ t d | t ƒ d t d d ƒ d d t d d d t d d | t ƒ d t f k sŸt	 ‚ t t  t t ƒ t  d t ƒ | ƒ d t
 f k sÕt	 ‚ d  S(   Ni   i   i   i   i   i   t   phi_nuR>   R?   RT   i    (   R    R/   R0   R1   R   R'   R%   R   R;   R6   RQ   (   R3   RC   t   fRF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt$   test_integrate_nonlinear_no_specials  s    ÀDh!c           C   s’   t  t t d t d d d t d g ƒ t d t d f t d d f d t d d f g f d t d d t d d f g f g k sŽ t ‚ d  S(   Ni   i   i   i   i   (   R&   R/   R6   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_integer_powers›  s    )4c           C   s«  t  t t ƒ t t d ƒ t ƒ j t t t t ƒ t d t ƒ t d t ƒ t t t ƒ t d t t t ƒ g t t t g t t t t ƒ ƒ t t t t d ƒ ƒ g g  d  d d g d  t t d g f k sÓ t
 ‚ t  t t ƒ t d t ƒ t ƒ j t t d t t ƒ t d t ƒ t d t ƒ t t t ƒ g t t g t t t t ƒ ƒ g g  d  d g d  t g f k sst
 ‚ t  t t ƒ t t d ƒ t ƒ j t t d t t ƒ t d t ƒ t d t ƒ t t d t ƒ g t t g t t t t d ƒ ƒ g g  d  d g d  t d g f k st
 ‚ t  t t ƒ t t d ƒ t t t d ƒ t ƒ j t d t t t t ƒ t d t ƒ t d t ƒ t t t ƒ t d t t t ƒ g t t t g t t t t ƒ ƒ t t t t d ƒ ƒ g g  d  d d g d  t t d g f k st
 ‚ t  t t ƒ t t d ƒ t t t d d ƒ t ƒ j t d t j t t t t ƒ t d t ƒ t d t ƒ t t t ƒ t d t t t ƒ g t t t g t t t t ƒ ƒ t t t t d ƒ ƒ g g  d  d d g d  t t d g f k st
 ‚ t  t t ƒ t t d ƒ t t d t d ƒ t ƒ j t t d t t d t ƒ t d t ƒ t d t ƒ t t d t ƒ t d t t t ƒ g t t t g t t t t d ƒ ƒ t t t t d ƒ ƒ g t t d ƒ t t t ƒ ƒ f g d  d d g d  t d t d g f k s$t
 ‚ t  t t ƒ t t d ƒ t t d t d d ƒ t ƒ j t t t d ƒ d t t d t ƒ t d t ƒ t d t ƒ t t d t ƒ t d t t t ƒ g t t t g t t t t d ƒ ƒ t t t t d ƒ ƒ g t t d ƒ t t t ƒ ƒ f g d  d d g d  t d t d g f k sRt
 ‚ t  t t t ƒ ƒ t ƒ j t t t ƒ t d t ƒ t d t ƒ t t d t ƒ g t t g t t t t d ƒ ƒ g t t d ƒ t t t ƒ ƒ f g d  d g d  t d g f k st
 ‚ t  t t d ƒ t ƒ j t t t ƒ t d t ƒ t d t ƒ t t d t ƒ g t t g t t t t d ƒ ƒ g g  d  d g d  t d g f k s§t
 ‚ d  S(   Ni   i   R   i   (   R'   R   R/   t   _important_attrsR    RD   RZ   R
   R5   t   NoneR6   R   t   Exp1R   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_DifferentialExtension_exp¡  sD    #45G#D9#?J5<5G97AG943/Q=>IG#@`@c           C   s  t  t t ƒ t t d ƒ t d t d d t ƒ t ƒ j t t t d t t d ƒ t d t t ƒ t d t ƒ t d t ƒ t d t t ƒ t d t d t d t ƒg t t t g t t	 t t	 ƒ ƒ t t	 t t	 d ƒ ƒ g g  d  d d g d  t t d g f k st ‚ t  t t t t ƒ t ƒ j t t t t ƒ t d t ƒ t d t ƒ t d t t ƒ t d t t t ƒ g t t t g t t	 t t	 ƒ ƒ t t	 t t t	 ƒ ƒ g t t t t ƒ ƒ t t f g d  d d g d  t t t g f k st ‚ d  S(   Ni   i   R   R   R   (   R'   R   R/   Rl   R    RZ   RD   RQ   R
   R5   Rm   R6   R   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_DifferentialExtension_logÇ  s    =:):85Ec           C   sT  t  t t t ƒ t ƒ j t t t t ƒ t d t ƒ t d t ƒ t d t t ƒ t t d t t ƒ g t t t g t t t t ƒ ƒ t t t	 t t ƒ ƒ g t	 t t t ƒ ƒ t t f g d  d d g d  t t t g f k sê t ‚ t  t t t ƒ t ƒ j t t t t ƒ t d t ƒ t d t ƒ t d t t ƒ g t t g t t t t ƒ ƒ g t t t ƒ t t t ƒ f g d  d g d  t g f k st ‚ t  t t t ƒ ƒ t ƒ j t t t ƒ t d t ƒ t d t ƒ t d t t ƒ g t t g t t t t ƒ ƒ g t t ƒ d t t t ƒ ƒ f g d  d g d  t g f k sPt ‚ d  S(   Ni   R   R   i   (   R'   R   R/   Rl   R    RZ   RD   R
   R5   R   Rm   R6   R4   R   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt!   test_DifferentialExtension_symlogÕ  s    >HKD>@@c           C   sü  t  t t ƒ t t ƒ t d d ƒj t t t t ƒ t d t ƒ t d t ƒ t d t t ƒ t t t ƒ g t t t g t t	 t t	 ƒ ƒ t t	 t t	 ƒ ƒ g g  d  d d g d  t t g f k sÉ t ‚ t  t t ƒ t t ƒ t d d ƒj t t t t ƒ t d t ƒ t d t ƒ t t t ƒ t d t t ƒ g t t t g t t	 t t	 ƒ ƒ t t	 t t	 ƒ ƒ g g  d  d d g d  t t g f k s’t ‚ t  t t t t ƒ d t t t t t t d d ƒj t  t t t t ƒ d t t t t t t d d ƒj k oít d t t t d t t ƒ t t t ƒ t d t ƒ t d t t ƒ t d t t t ƒ g t t t g t t	 t t	 ƒ ƒ t t	 t t t	 ƒ ƒ g t t t t ƒ ƒ t t f g d  d d g d  t t t g f k n søt ‚ d  S(   Nt   handle_firstR   i   R   i   iÿÿÿÿ(   R'   R   R/   R   Rl   R    RZ   RD   R
   R5   Rm   R6   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt'   test_DifferentialExtension_handle_firstå  s     %8B*%4F*3	3,?Kc              s„  t  t t ƒ t t ƒ t d d ƒ‰  ˆ  j t t ƒ t t ƒ k sJ t ‚ ˆ  j t t k sc t ‚ ˆ  j t k sx t ‚ ˆ  j	 d d d g k s– t ‚ ˆ  j
 d k s« t ‚ ˆ  j d k sÀ t ‚ ˆ  j t k oä ˆ  j ˆ  j k n sï t ‚ ˆ  j t d t t ƒ k o ˆ  j ˆ  j k n s+t ‚ t t ‡  f d †  ƒ ˆ  j ƒ  ˆ  j d k s`t ‚ ˆ  j t k o„ˆ  j ˆ  j k n st ‚ ˆ  j t t t ƒ k o¼ˆ  j ˆ  j k n sÇt ‚ ˆ  j
 d k sÜt ‚ ˆ  j ƒ  ˆ  j d	 k sût ‚ ˆ  j t k o-ˆ  j ˆ  j k o-ˆ  j k n s8t ‚ ˆ  j t d t ƒ k oeˆ  j ˆ  j k n spt ‚ ˆ  j
 d k s…t ‚ t t ‡  f d
 †  ƒ ˆ  j ƒ  ˆ  j ƒ  ˆ  j d k sÄt ‚ ˆ  j t k oèˆ  j ˆ  j k n sót ‚ ˆ  j t d t t ƒ k o$ˆ  j ˆ  j k n s/t ‚ ˆ  j
 d k sDt ‚ ˆ  j d ƒ d g k sbt ‚ ˆ  j d ƒ d g k s€t ‚ d  S(   NRr   R   t   baset	   primitiveiÿÿÿÿi   c              s
   ˆ  j  ƒ  S(   N(   t   increment_level(    (   RF   (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyR8     R9   iþÿÿÿiýÿÿÿc              s
   ˆ  j  ƒ  S(   N(   t   decrement_level(    (   RF   (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyR8     R9   R   i   (   R'   R   R/   R   Ri   R6   t   newfRZ   RD   t   casest   caset   levelR0   t   TRC   R    R?   R.   R:   Rw   Rv   t   indices(    (    (   RF   s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt$   test_DifferentialExtension_all_attrsû  s:    %%/<
/8
=8

/<c       
   C   sÉ  t  t d „  ƒ t d i t d t ƒ t t t ƒ g d 6ƒ }  |  j d  d  t d t ƒ t t t ƒ g t t g d  d  d  d  f k s‰ t ‚ |  j	 t t t ƒ k s§ t ‚ |  j t k s¼ t ‚ |  j
 d k sÑ t ‚ |  j d d g k sì t ‚ |  j t k st ‚ |  j d k st ‚ t d i t d t ƒ t t t ƒ g d 6d  d g d 6d  t g d	 6ƒ }  |  j d  d  t d t ƒ t t t ƒ g t t g d  d  d  d g d  t g f k sµt ‚ t  t d
 „  ƒ d  S(   Nc           S   s   t  d i t t g d 6ƒ S(   NR>   R|   (   R'   R/   R0   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyR8      R9   R>   i   R?   iÿÿÿÿRt   R   t   extst   extargsc           S   s   t  ƒ  S(   N(   R'   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyR8   /  R9   (   R.   R:   R'   R    R/   R0   Rl   Rm   R6   RC   R{   Ry   Rz   (   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt)   test_DifferentialExtension_extension_flag  s    .0( 0'c           C   s~  t  t t ƒ t t ƒ t ƒ j t t t ƒ t t d d ƒt d t d d ƒt d t d d ƒt t t d d ƒg t t g t t	 t t	 ƒ ƒ g g  d  d g d  t g f k s¶ t ‚ t t d „  ƒ t  d t t ƒ j t t t ƒ t d t ƒ t d t ƒ t t d ƒ t t ƒ g t t g t t	 t t	 t d ƒ ƒ ƒ g t t t d ƒ ƒ d t f g d  d g d  t t d ƒ g f k s‰t ‚ t  t t ƒ t t d ƒ t ƒ j t d	 t t ƒ t d t ƒ t d t ƒ t d t t ƒ g t t g t t	 t t	 d ƒ ƒ g g  d  g g  d g t d g f
 t d	 t t ƒ t d t ƒ t d t ƒ t d t t ƒ g t t g t t	 t t	 ƒ ƒ g g  d  d
 g d  t g f g k s¨t ‚ t  t j t ƒ j t d t ƒ t d t ƒ t d t ƒ g t g g  g  d  g d  g f k st ‚ t  t t t ƒ j t ƒ ƒ t ƒ j t t t ƒ t d t ƒ t d t ƒ g t g g  g  d  g d  g f k szt ‚ d  S(   NR@   s
   ZZ[sin(y)]i   t   ZZR   c           S   s   t  t t ƒ t ƒ S(   N(   R'   R   R/   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyR8   8  R9   i
   i   i   R   i    (   R'   R   R4   R   R/   Rl   R    RZ   R
   R5   Rm   R6   R.   t   NotImplementedErrorR   R   t   ZeroR   R   t   rewrite(    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_DifferentialExtension_misc2  s$    .09FH"#D8D<N$c          C   s˜  d t  t ƒ d d t  d t ƒ d t  t ƒ d d t  t ƒ d t  d t  t ƒ d d t ƒ }  t |  t ƒ j t d d t t t ƒ t d d t d t d d t d t ƒ t d t ƒ t t t ƒ t d d	 t d t d d d t t d t t d
 d ƒg t t t g t t t  t ƒ ƒ t t t  d t d d t ƒ ƒ g g  d  d d g d  t d t d d t g f k s”t
 ‚ d  S(   NI½FÛ™    ië¼hi ai   i ?#i   i   i
   i   R@   s   ZZ(t0)R   (   R   R/   R'   Rl   R    RZ   RD   R
   R5   Rm   R6   (   Ri   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt$   test_DifferentialExtension_RothsteinH  s    j)K:t   _TestingExceptionc           B   s   e  Z d  Z RS(   s"   Dummy Exception class for testing.(   t   __name__t
   __module__t   __doc__(    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyRˆ   U  s   c          C   sÐ  t  t t t t ƒ d ƒ t ƒ }  |  j d k s8 t ‚ |  j t k sM t ‚ |  j t	 t
 t
 d t ƒ k ss t ‚ |  j d k sˆ t ‚ t |  ƒ /|  j d k sª t ‚ |  j t
 k s¿ t ‚ |  j t	 t
 t
 ƒ k sÝ t ‚ |  j d k sò t ‚ t |  ƒ b |  j d k st ‚ |  j t k s)t ‚ |  j t	 d t ƒ k sGt ‚ |  j d k s\t ‚ Wd  QX|  j d k swt ‚ |  j t
 k sŒt ‚ |  j t	 t
 t
 ƒ k sªt ‚ |  j d k s¿t ‚ Wd  QX|  j d k sÚt ‚ |  j t k sït ‚ |  j t	 t
 t
 d t ƒ k st ‚ |  j d k s*t ‚ y t |  ƒ  t ‚ Wd  QXWn t k
 rZn Xt d ƒ ‚ |  j d k s|t ‚ |  j t k s‘t ‚ |  j t	 t
 t
 d t ƒ k s·t ‚ |  j d k sÌt ‚ d  S(	   Ni   iÿÿÿÿRu   iþÿÿÿR   iýÿÿÿRt   s   Did not raise.(   R'   R/   R   R   R{   R6   R0   RD   RC   R    RZ   Rz   R)   Rˆ   (   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_DecrementLevelZ  sB    #&&&c          C   sä  t  t t t ƒ t ƒ t t t ƒ k s/ t ‚ t  t t ƒ t d t ƒt t t ƒ d t t t ƒ d k sx t ‚ t  d d t d t d d t d t d t d ƒ t d t t d ƒ d t d t t d ƒ t t d ƒ t ƒ t t t d ƒ t ƒ t t d ƒ d t d k s1t ‚ t  d t ƒ d k sLt ‚ t	 t t t ƒ d ƒ }  t  |  t ƒ } | t t	 t t t ƒ d ƒ t t d t t t t ƒ t ƒ k sÃt ‚ t
 t | t ƒ |  ƒ d k sèt ‚ t	 d t ƒ d t	 d t ƒ d t t	 d d t ƒ d t	 d d t ƒ d t } t  | t ƒ } | t	 d t ƒ t	 d d t ƒ d t	 d t ƒ t	 d d t ƒ d t t t t d d t t	 d t ƒ t t d t d d t t ƒ k sòt ‚ t t
 t | t ƒ | ƒ d t ƒd k s#t ‚ t  t	 t t ƒ t ƒ t d t	 t ƒ d t d d k sft ‚ t  t	 t t ƒ t ƒ t t	 t t ƒ t t k s¡t ‚ t  t	 t t ƒ ƒ t ƒ t t	 t t ƒ ƒ t d k sàt ‚ d  S(	   Nt   rewrite_complexi   i   i   i   i    iÿÿÿÿt   force(   R(   RZ   R   R/   R6   R   R;   R   R*   R   R   R   R4   R   R   R   (   t   e1t   ans1t   e2t   ans2(    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_risch_integrate†  s$    /I8D=N%ZJW1C;c           C   si   t  d t t ƒ d t d t ƒ t d t ƒ t ƒ d t d t ƒ d t d t ƒ k se t ‚ d  S(   NiÄÿÿÿg3333333@i   g333333Ài   g      (@i   (   R(   R   R/   R6   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_risch_integrate_float®  s    c           C   s   t  t t t d ƒ t ƒ t ƒ s( t ‚ t  t t t t t ƒ t ƒ t ƒ sT t ‚ t  t t t t t ƒ j t t t ƒ ƒ t ƒ sŒ t ‚ d  S(   Ni   (	   t
   isinstanceR(   R   R/   R*   R6   R   RZ   t   subs(    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_NonElementaryIntegral²  s    (,c          C   sK   t  t t t ƒ }  |  t t t t ƒ k s2 t ‚ t |  t ƒ sG t ‚ d  S(   N(   R(   R/   R*   R6   R•   (   R3   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   test_xtothex¹  s    c          C   s/   t  t t ƒ t ƒ }  } |  | k s+ t ‚ d  S(   N(   R'   R   R/   R6   (   t   DE1t   DE2(    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt#   test_DifferentialExtension_equality¿  s    c          C   si   t  t d t d ƒ t t t d ƒ d ƒ t ƒ }  t |  ƒ d k sM t ‚ t |  ƒ d k se t ‚ d  S(   Ni   i   so  DifferentialExtension(dict([('f', exp(2*x**2) + log(exp(x**2) + 1)), ('x', x), ('T', [x, t0, t1]), ('D', [Poly(1, x, domain='ZZ'), Poly(2*x*t0, t0, domain='ZZ[x]'), Poly(2*t0*x/(t0 + 1), t1, domain='ZZ(x,t0)')]), ('fa', Poly(t1 + t0**2, t1, domain='ZZ[t0]')), ('fd', Poly(1, t1, domain='ZZ')), ('Tfuncs', [Lambda(i, exp(i**2)), Lambda(i, log(t0 + 1))]), ('backsubs', []), ('exts', [None, 'exp', 'log']), ('extargs', [None, x**2, t0 + 1]), ('cases', ['base', 'exp', 'primitive']), ('case', 'primitive'), ('t', t1), ('d', Poly(2*t0*x/(t0 + 1), t1, domain='ZZ(x,t0)')), ('newf', t0**2 + t1), ('level', -1), ('dummy', False)]))sË   DifferentialExtension({fa=Poly(t1 + t0**2, t1, domain='ZZ[t0]'), fd=Poly(1, t1, domain='ZZ'), D=[Poly(1, x, domain='ZZ'), Poly(2*x*t0, t0, domain='ZZ[x]'), Poly(2*t0*x/(t0 + 1), t1, domain='ZZ(x,t0)')]})(   R'   R   R/   R   t   reprR6   t   str(   RF   (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt#   test_DifferentialExtension_printingÄ  s    5	N(c   R‹   t   sympyR    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   t   sympy.integrals.rischR   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.utilities.pytestR.   t	   sympy.abcR/   R0   R1   R2   R3   R4   RZ   RD   Re   R5   R7   R<   R=   RG   RJ   RK   RL   RM   RP   RR   RS   RY   R^   R_   Rb   Rd   Rf   Rg   Rj   Rk   Ro   Rp   Rq   Rs   R~   R   R†   R‡   t	   ExceptionRˆ   RŒ   R“   R”   R—   R˜   R›   Rž   (    (    (    s?   lib/python2.7/site-packages/sympy/integrals/tests/test_risch.pyt   <module>   sT   Žš.							/						C									&				$				,	(				