ó
¡¼™\c           @   sB  d  d l  Z  d  d l Z d  d l Z d  d l m Z e d d i d g d 6ƒZ e s_ e Z n  d  d l Z d  d l	 m
 Z
 d „  Z e d	 „ Z d
 „  Z d „  Z e
 d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e
 d „  ƒ Z d „  Z d „  Z d S(   iÿÿÿÿN(   t   import_modules   sage.allt   __import__kwargst   allt   fromlist(   t   XFAILc         C   s   |  | j  ƒ  s t ‚ d S(   sÊ   
    True if lhs and rhs are trivially equal.

    Use this for comparison of Sage expressions. Otherwise you
    may start the whole proof machinery which may not exist at
    the time of testing.
    N(   t   is_trivial_zerot   AssertionError(   t   lhst   rhs(    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   is_trivially_equal!   s    c   
      C   s‡  | r t  j | ƒ n  t ƒ  j ƒ  } | j t  j ƒ d | k sG t ‚ t } y, t |  | ƒ } t	 | t
 j ƒ sx t ‚ Wn t t f k
 r˜ t } n X| r± t
 j | ƒ } n  t ƒ  j ƒ  } | j t
 j ƒ d | k sâ t ‚ | j t
 j ƒ t |  | ƒ } t	 | t
 j ƒ st ‚ | rIt | j d ƒ }	 |	 t
 j | ƒ ƒ } n  | smt
 j | ƒ | k smt ‚ n  t | t  j | ƒ ƒ d S(   sG   
    Does eval(expr) both in Sage and SymPy and does other checks.
    t   sint   _sage_N(   t   saget   vart   globalst   copyt   updatet   __dict__R   t   Falset   evalt
   isinstancet   sympyt   Basict	   NameErrort	   TypeErrort   Truet   getattrt   funct   SR	   t   SR(
   t   exprt   var_symbolst   only_from_sympyt   at   is_differentt   e_saget
   sympy_varst   bt   e_sympyt   _sage_method(    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   check_expression+   s4    c           C   s8   t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ d  S(   Nt   xs   x**2s	   x**2+y**3s   x ys   1/(x+y)**2-x**3/4(   R(   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_basicsT   s    c           C   s   t  d d ƒ t  d d ƒ d  S(   Nt   It    s   23+I*4R)   (   R(   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_complex[   s    c           C   s   t  d d ƒ t  d d ƒ d  S(   Ns   I*yt   ys   x+I*ys   x y(   R(   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_complex_fail`   s    c           C   s   t  d d ƒ t  d d ƒ d  S(   Ns   4*xR)   s   -4*x(   R(   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_integerg   s    c           C   s   t  d d ƒ t  d d ƒ d  S(   Ns   1.123*xR)   s   -18.22*x(   R(   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt	   test_reall   s    c           C   sA   t  j t j ƒ t  j k s! t ‚ t t j t j t  j ƒ ƒ d  S(   N(   R   t   sympifyR   t   et   ER   R	   R   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_Eq   s    !c           C   sA   t  j t j ƒ t  j k s! t ‚ t t j t j t  j ƒ ƒ d  S(   N(   R   R2   R   t   piR   R	   R   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_piv   s    !c           C   sA   t  j t j ƒ t  j k s! t ‚ t t j t j t  j ƒ ƒ d  S(   N(   R   R2   R   t   euler_gammat
   EulerGammaR   R	   R   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_euler_gamma{   s    !c           C   s˜   t  j t j ƒ t  j k s! t ‚ t j t j t  j ƒ j ƒ  k sH t ‚ t  j t j ƒ t  j k sk t ‚ t j t j t  j ƒ j ƒ  k s” t ‚ d  S(   N(   R   R2   R   t   ooR   R   t   pyobject(    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_oo€   s    !'#c           C   sA   t  j t j ƒ t  j k s! t ‚ t t j t j t  j ƒ ƒ d  S(   N(   R   R2   R   t   NaNt   nanR   R	   R   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_NaNˆ   s    !c           C   sA   t  j t j ƒ t  j k s! t ‚ t t j t j t  j ƒ ƒ d  S(   N(   R   R2   R   t   catalant   CatalanR   R	   R   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_Catalan   s    !c           C   sA   t  j t j ƒ t  j k s! t ‚ t t j t j t  j ƒ ƒ d  S(   N(   R   R2   R   t   golden_ratiot   GoldenRatioR   R	   R   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_GoldenRation’   s    !c           C   s>  d t  j j k s 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 d ƒ 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 d ƒ 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 d ƒ 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' d ƒ t d( d ƒ t d) d ƒ t d* d ƒ t d+ d, ƒ t d- d. ƒ t d/ d ƒ d  S(0   NR   s   factorial(x)R)   s   sin(x)s   cos(x)s   tan(x)s   cot(x)s   asin(x)s   acos(x)s   atan(x)s   atan2(y, x)s   x, ys   acot(x)s   sinh(x)s   cosh(x)s   tanh(x)s   coth(x)s   asinh(x)s   acosh(x)s   atanh(x)s   acoth(x)s   exp(x)s   gamma(x)s   log(x)s   re(x)s   im(x)s   sign(x)s   abs(x)s   arg(x)s   conjugate(x)s   besselj(y, x)s   bessely(y, x)s   besseli(y, x)s   besselk(y, x)s   DiracDelta(x)s   KroneckerDelta(x, y)s   expint(y, x)s   Si(x)s   Ci(x)s   Shi(x)s   Chi(x)s   loggamma(x)s   Ynm(n,m,x,y)s
   n, m, x, ys   hyper((n,m),(m,n),x)s   n, m, xs   uppergamma(y, x)(   R   t	   factorialR   R   R(   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_functions—   sV    c          C   s   t  j d ƒ t  j }  t j |  t ƒ t t t t d f ƒ } t j | ƒ } t  j | ƒ } t	 | |  t ƒ |  t d ƒ |  t d ƒ t d t ƒ d  S(   Ns   a xi   (
   R   R   t   logR   t	   integrateR)   R!   t   simplifyR   R	   (   RI   t   it   i2t   s(    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_issue_4023Ç   s    	)c           C   s‰   t  d d d t ƒt  d d d t ƒt  d d d t ƒt  d d d t ƒt  d d d t ƒt  d	 d d t ƒt  d
 d d t ƒd  S(   Ns   Integral(x, (x,))R)   R    s   Integral(x, (x, 0, 1))s   Integral(x*y, (x,), (y, ))s   x,ys   Integral(x*y, (x,), (y, 0, 1))s   Integral(x*y, (x, 0, 1), (y,))s#   Integral(x*y, (x, 0, 1), (y, 0, 1))s0   Integral(x*y*z, (x, 0, 1), (y, 0, 1), (z, 0, 1))s   x,y,z(   R(   R   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_integralÏ   s    c           C   s=   t  d d d t ƒt  d d d t ƒt  d d d t ƒd  S(   Ns   Integral(x, (x, 0))R)   R    s   Integral(x*y, (x,), (y, 0))s   x,ys    Integral(x*y, (x, 0, 1), (y, 0))(   R(   R   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_integral_failingÙ   s    c          C   s_   t  j d ƒ }  t j d ƒ } t  j d ƒ } t j d ƒ } t | | ƒ |  | ƒ j ƒ  ƒ d  S(   Nt   fR)   (   R   t   FunctionR   t   functiont   symbolsR   R	   R   (   RR   t   sfR)   t   sx(    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_undefined_functionà   s
    c          C   sr   d d l  m }  t j d ƒ \ } } t j d ƒ } | | | ƒ } | j ƒ  } t | |  ƒ sn t d | ƒ ‚ d  S(   Niÿÿÿÿ(   t
   Expressions   x yRR   s.   converted expression %r is not sage expression(   t   sage.symbolic.expressionRY   R   RU   RS   R   R   R   (   RY   R)   R.   RR   R   t   sexpr(    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   test_abstract_functionè   s    (    t   ost   ret   syst   sympy.externalR    R   R   t   disabledR   t   sympy.utilities.pytestR   R	   R   R(   R*   R-   R/   R0   R1   R5   R7   R:   R=   R@   RC   RF   RH   RO   RP   RQ   RX   R\   (    (    (    s=   lib/python2.7/site-packages/sympy/external/tests/test_sage.pyt   <module>   s:   		
)												0		
		-