ó
¡¼™\c           @   sA  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 d  d l m Z d  d l m Z m Z m Z m Z m Z m Z d  d l m Z e d ƒ \ Z Z 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' d „  Z( d „  Z) d S(   iÿÿÿÿ(	   t   St   pit   oot   symbolst   Functiont   Rationalt   Integert   Tuplet
   Derivative(   t   Integral(   t   Sum(   t   expt   sint   cost	   conjugatet   Maxt   Min(   t   mathematica_codes   x,y,zt   fc           C   s@   t  t d ƒ ƒ d k s t ‚ t  t d ƒ ƒ d k s< t ‚ d  S(   NiC   t   67iÿÿÿÿs   -1(   t   mcodeR   t   AssertionError(    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_Integer   s    c           C   sÒ   t  t d d ƒ ƒ d k s! t ‚ t  t d d ƒ ƒ d k sB t ‚ t  t d d ƒ ƒ d k sc t ‚ t  t d	 d ƒ ƒ d k s„ t ‚ t  t t d d ƒ ƒ d
 k s© t ‚ t  t d d ƒ t ƒ d k sÎ t ‚ d  S(   Ni   i   s   3/7i   i	   t   2iùÿÿÿs   -3/7iýÿÿÿs   x + 3/7s   (3/7)*x(   R   R   R   t   x(    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_Rational   s    !!!!%c           C   sŸ   t  t t t t ƒ ƒ d k s$ t ‚ t  t t ƒ t t ƒ ƒ d k sL t ‚ t  t t ƒ ƒ d k sj t ‚ t  t	 t t t ƒ t
 t t ƒ ƒ d k s› t ‚ d  S(   Ns
   f[x, y, z]s   Sin[x]^Cos[x]s   Conjugate[x]s   Max[x, y, z]*Min[y, z](   R   R   R   t   yt   zR   R   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_Function   s    $(c           C   s¿   t  t d ƒ d k s t ‚ t  t t d ƒ d k s< t ‚ t  d t t ƒ d t t t t d t ƒ d k sz t ‚ t  t d ƒ d	 k s– t ‚ t  t t d d ƒ ƒ d
 k s» t ‚ d  S(   Ni   s   x^3s   x^(y^3)i   g      @i   s   (3.5*f[x])^(-x + y^x)/(x^2 + y)g      ð¿s   x^(-1.0)s   x^(2/3)(   R   R   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_Pow"   s     /c          C   sÞ   t  d d t ƒ\ }  } } } t t t t ƒ d k s> t ‚ t t t |  ƒ d k s^ t ‚ t t t |  | ƒ d k s‚ t ‚ t t t |  | | ƒ d k sª t ‚ t t |  | | | |  t ƒ d k sÚ t ‚ d  S(   Ns   A B C Dt   commutatives   x*y*zs   x*y*As   x*y*A**Bs   x*y*A**B**Cs   x*y*A**B**(C + D)**A(   R   t   FalseR   R   R   R   R   (   t   At   Bt   Ct   D(    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_Mul+   s      $(c           C   s“  t  t j ƒ d k s t ‚ t  t j ƒ d k s6 t ‚ t  t j ƒ d k sQ t ‚ t  t j ƒ d k sl t ‚ t  t j ƒ d k s‡ t ‚ t  t ƒ d k sŸ t ‚ t  t j	 ƒ d k sº t ‚ t  t j
 ƒ d k sÕ t ‚ t  t j ƒ d	 k sð t ‚ t  t j ƒ d
 k st ‚ t  t ƒ d k s#t ‚ t  t j ƒ d k s>t ‚ t  t j ƒ d k sYt ‚ t  t j ƒ d k stt ‚ t  t j ƒ d k st ‚ d  S(   Nt   0t   1s   -1s   1/2t   It   Infinitys	   -Infinityt   ComplexInfinityt   Indeterminatet   Et   Pit   GoldenRatiosC   1/3 + (1/3)*(19 - 3*33^(1/2))^(1/3) + (1/3)*(3*33^(1/2) + 19)^(1/3)t
   EulerGammat   Catalan(   R   R    t   ZeroR   t   Onet   NegativeOnet   Halft   ImaginaryUnitR   t   NegativeInfinityR)   t   NaNt   Exp1R   R-   t   TribonacciConstantR.   R/   (    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_constants4   s     c           C   sÁ   t  d d d d d d d g g d d	 d
 g d g ƒ d k sB t ‚ t  d d d f ƒ d k sc t ‚ t  d g ƒ d k s~ t ‚ t  d ƒ d k s– t ‚ t  t d d d g Œ  ƒ d k s½ t ‚ d  S(   Ni   i   i   i   i   i   i   i   i	   i
   i   s)   {1, 2, 3, {4, 5, {6, 7}}, 8, {9, 10}, 11}s   {1, 2, {3, 4}}s   {1}s	   {1, 2, 3}(   i   i   (   i   (   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_containersJ   s    3!c          C   sÆ  d d l  m }  m } m } m } |  d d d d g d d d d g d d d d g d d d d g g ƒ } | | ƒ } | | ƒ } | | ƒ } t | ƒ t | ƒ k o± d k n s¼ t ‚ t | ƒ t | ƒ k oß d k n sê t ‚ t |  d d g  ƒ ƒ d k st ‚ t | d d g  ƒ ƒ d k s2t ‚ t |  d d	 g  ƒ ƒ d k sVt ‚ t | d d	 g  ƒ ƒ d
 k szt ‚ t |  d	 d g  ƒ ƒ d k sžt ‚ t | d	 d g  ƒ ƒ d k sÂt ‚ d  S(   Niÿÿÿÿ(   t   MutableDenseMatrixt   MutableSparseMatrixt   ImmutableDenseMatrixt   ImmutableSparseMatrixi   i    s;   {{1, -1, 0, 0}, {0, 1, -1, 0}, {0, 0, 1, -1}, {0, 0, 0, 1}}ss   SparseArray[{{1, 1} -> 1, {1, 2} -> -1, {2, 2} -> 1, {2, 3} -> -1, {3, 3} -> 1, {3, 4} -> -1, {4, 4} -> 1}, {4, 4}]s   {}s   SparseArray[{}, {0, 0}]i   s   SparseArray[{}, {0, 3}]s   {{}, {}, {}}s   SparseArray[{}, {3, 0}](   t   sympy.matricesR;   R<   R=   R>   R   R   (   R;   R<   R=   R>   R    R!   R"   R#   (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_matricesS   s&    "$$$$$c          C   s  d d l  m }  m } m } m } |  d d d d g d d d	 d
 g d d d d g g d d d d g d d d d g d d d d g g g ƒ } t | ƒ d k s¦ t ‚ | | ƒ } t | ƒ d k sÊ t ‚ | | ƒ } t | ƒ d k sî t ‚ | | ƒ } t | ƒ d k st ‚ d  S(   Niÿÿÿÿ(   t   MutableDenseNDimArrayt   ImmutableDenseNDimArrayt   MutableSparseNDimArrayt   ImmutableSparseNDimArrayi   i   i   i   i   i   i   i   i	   i
   i   i   i   i   i   i   i   i   i   i   i   i   i   i   sg   {{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}, {{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}}s§  SparseArray[{{1, 1, 1} -> 1, {1, 1, 2} -> 2, {1, 1, 3} -> 3, {1, 1, 4} -> 4, {1, 2, 1} -> 5, {1, 2, 2} -> 6, {1, 2, 3} -> 7, {1, 2, 4} -> 8, {1, 3, 1} -> 9, {1, 3, 2} -> 10, {1, 3, 3} -> 11, {1, 3, 4} -> 12, {2, 1, 1} -> 13, {2, 1, 2} -> 14, {2, 1, 3} -> 15, {2, 1, 4} -> 16, {2, 2, 1} -> 17, {2, 2, 2} -> 18, {2, 2, 3} -> 19, {2, 2, 4} -> 20, {2, 3, 1} -> 21, {2, 3, 2} -> 22, {2, 3, 3} -> 23, {2, 3, 4} -> 24}, {2, 3, 4}](   t   sympy.tensor.arrayRA   RB   RC   RD   R   R   (   RA   RB   RC   RD   t   example(    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_NDArrayt   s&    "				c           C   s|   t  t t t t ƒ ƒ t ƒ ƒ d k s- t ‚ t  t t t d t d ƒ t t t f t t t f ƒ ƒ d k sx t ‚ d  S(   Ns   Hold[Integrate[Sin[Sin[x]], x]]i   sT   Hold[Integrate[Exp[-x^2 - y^2], {x, -Infinity, Infinity}, {y, -Infinity, Infinity}]](   R   R	   R   R   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_Integral©   s
    -c           C   së   t  t t t ƒ t ƒ ƒ d k s' t ‚ t  t t t ƒ ƒ d k sH t ‚ t  t t t ƒ t d t d ƒ ƒ d k sz t ‚ t  t t t ƒ t d t t t ƒ ƒ d k s¯ t ‚ t  t t t ƒ t d t t d t ƒ ƒ d k sç t ‚ d  S(	   Ns   Hold[D[Sin[x], x]]s   Hold[D[x, x]]i   i   s   Hold[D[y^4*Sin[x], {x, 2}]]s   Hold[D[y^4*Sin[x], x, y, x]]i   s!   Hold[D[y^4*Sin[x], x, {y, 3}, x]](   R   R   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_Derivative²   s
    '!25c           C   s   t  t t t ƒ t d d f ƒ ƒ d k s0 t ‚ t  t t t d t d ƒ t t t f t t t f ƒ ƒ d k s{ t ‚ d  S(   Ni    i
   s   Hold[Sum[Sin[x], {x, 0, 10}]]i   sN   Hold[Sum[Exp[-x^2 - y^2], {x, -Infinity, Infinity}, {y, -Infinity, Infinity}]](   R   R
   R   R   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_Sumº   s
    0c          C   s2   d d l  m }  |  ƒ  j d ƒ d k s. t ‚ d  S(   Niÿÿÿÿ(   t   MCodePrinters   Hello Worlds   (* Hello World *)(   t   sympy.printing.mathematicaRK   t   _get_commentR   (   RK   (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_commentÃ   s    c          C   s¨   t  d d t ƒ}  i d d 6} t |  t ƒ d | ƒd k sC t ‚ t |  t ƒ d | ƒd k sg t ‚ i d „  d f g d 6} t |  t ƒ d | ƒd k s¤ t ‚ d  S(	   Nt   some_functiont   clst   SomeFunctiont   user_functionss   SomeFunction[z]c         S   s   t  S(   N(   t   True(   R   (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   <lambda>×   t    t   SomeOtherFunctions   SomeOtherFunction[z](   R   R   R   R   R   (   RO   t   my_user_functions(    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   test_userfuncsÈ   s    N(*   t
   sympy.coreR    R   R   R   R   R   R   R   R   t   sympy.integralsR	   t   sympy.concreteR
   t   sympy.functionsR   R   R   R   R   R   t   sympyR   R   R   R   R   R   R   R   R   R   R$   R9   R:   R@   RG   RH   RI   RJ   RN   RX   (    (    (    sD   lib/python2.7/site-packages/sympy/printing/tests/test_mathematica.pyt   <module>   s(   @.												!	5						