ó
¡¼™\c           @   sº  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 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 d  d l m Z d  d l m Z d  d l  m! Z! m" Z" m# Z# d  d l$ m% Z% d  d l& m' Z' d  d l( m) Z) d  d	 l* m+ Z+ m, Z, d  d
 l- m. Z. m/ Z/ d  d l0 m1 Z1 d  d l2 m3 Z3 d  d l4 m4 Z4 e d ƒ \ Z5 Z6 Z7 d „  Z8 d „  Z9 d „  Z: d „  Z; d „  Z< 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 d0 S(1   iÿÿÿÿ(   t   St   pit   oot   Symbolt   symbolst   Rationalt   Integert   GoldenRatiot
   EulerGammat   Catalant   Lambdat   Dummyt   Eq(   t	   Piecewiset   sint   cost   Abst   expt   ceilingt   sqrtt   gammat   signt   Maxt   Mint	   factorialt   beta(   t   Range(   t   ITE(   t   Fort
   aug_assignt
   Assignment(   t   raises(   t   RCodePrinter(   t   implemented_function(   t   IndexedBaset   Idx(   t   Matrixt   MatrixSymbol(   t   rcode(   t   Differ(   t   pprints   x,y,zc          C   s8   d t  f d „  ƒ  Y}  t |  t ƒ ƒ d k s4 t ‚ d  S(   Nt   fabsc           B   s   e  Z d  „  Z RS(   c         S   s   d | j  |  j d ƒ S(   Ns   abs(%s)i    (   t   _printt   args(   t   selft   printer(    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   _rcode   s    (   t   __name__t
   __module__R.   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyR)      s   s   abs(x)(   R   R&   t   xt   AssertionError(   R)   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_printmethod   s    c           C   s\   t  t t ƒ ƒ d k s t ‚ t  t d ƒ d k s: t ‚ t  t t ƒ ƒ d k sX t ‚ d  S(   Ns   sqrt(x)g      à?(   R&   R   R1   R2   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_sqrt   s    c          C   sK  t  t d ƒ d k s t ‚ t  t t d ƒ d k s< t ‚ t d t t d t ƒ ƒ }  t  d |  t ƒ d t t t t d t ƒ d k s– t ‚ t  t d	 ƒ d
 k s² t ‚ t  t t d d ƒ ƒ d k s× t ‚ d „  d f d „  d f g } t  t d d i | d 6ƒd k st ‚ t  t d d i | d 6ƒd k sGt ‚ d  S(   Ni   s   x^3s   x^(y^3)t   gi   i   g      @s   (3.5*2*x)^(-x + y^x)/(x^2 + y)g      ð¿s   1.0/xs   x^(2.0/3.0)c         S   s   | j  S(   N(   t
   is_integer(   t   baseR   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   <lambda>+   t    t   dpowic         S   s   | j  S(   N(   R6   (   R7   R   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyR8   ,   R9   t   powt   user_functionst   Pows   dpowi(x, 3)gš™™™™™	@s   pow(x, 3.2)(   R&   R1   R2   t   yR!   R
   R   (   R5   t   _cond_cfunc(    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_Pow#   s     /%)c           C   s=   t  t t t t ƒ d i d d 6d d 6ƒd k s9 t ‚ d  S(   NR<   t   my_maxR   t   my_powR=   s   my_max(x, my_pow(x, 2))(   R&   R   R1   R2   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_Max2   s    c          C   s}   t  t d ƒ ƒ }  t  t d ƒ ƒ d k s0 t ‚ t  t ƒ d k sH t ‚ t  t ƒ d k s` t ‚ t  t ƒ d k sy t ‚ d  S(   Ni   s   exp(1)R   t   Infs   -Inf(   R&   R   R2   R   R   (   t   p(    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_constants_mathh6   s
    c           C   sX   t  d t ƒ d k s t ‚ t  d t ƒ d k s8 t ‚ t  d t ƒ d k sT t ‚ d  S(   Ni   s-   GoldenRatio = 1.61803398874989;
2*GoldenRatios&   Catalan = 0.915965594177219;
2*Catalans,   EulerGamma = 0.577215664901533;
2*EulerGamma(   R&   R   R2   R	   R   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_constants_other>   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.0/7.0i   i	   t   2iùÿÿÿs   -3.0/7.0iýÿÿÿs   x + 3.0/7.0s   (3.0/7.0)*x(   R&   R   R2   R1   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_RationalE   s    !!!!%c           C   s@   t  t d ƒ ƒ d k s t ‚ t  t d ƒ ƒ d k s< t ‚ d  S(   NiC   t   67iÿÿÿÿs   -1(   R&   R   R2   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_IntegerN   s    c           C   s‡   t  t t ƒ t t ƒ ƒ d k s( t ‚ t  t t ƒ t t ƒ ƒ d k sP t ‚ t  t t	 t t ƒ t
 t t ƒ ƒ ƒ d k sƒ t ‚ d  S(   Ns   sin(x)^cos(x)s   factorial(x) + gamma(y)s   beta(min(x, y), max(x, y))(   R&   R   R1   R   R2   R   R   R>   R   R   R   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_functionsS   s    ((c          C   s  t  d ƒ }  t d t |  d |  ƒ ƒ } t | |  ƒ ƒ d k sF t ‚ t d t |  d |  t ƒ ƒ } t | |  ƒ ƒ d t j ƒ  k sŽ t ‚ t d ƒ } t d t  d d	 t	 ƒƒ } t d t |  |  d
 |  d |  ƒ ƒ } t | | | ƒ d | | ƒ} d } | | k st ‚ d  S(   NR1   R5   i   s   2*xs   Catalan = %s;
2*x/Catalant   At   it   nt   integeri   t	   assign_tos7   for (i in 1:n){
   A[i] = (A[i] + 1)*(A[i] + 2)*A[i];
}(
   R   R!   R
   R&   R2   R	   RO   R"   R#   t   True(   R1   R5   RM   RN   t   rest   ref(    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_inline_functionY   s     %( c           C   s^   t  t t ƒ ƒ d k s t ‚ t  t t ƒ ƒ d k s< t ‚ t  t t ƒ ƒ d k sZ t ‚ d  S(   Ns
   ceiling(x)s   abs(x)s   gamma(x)(   R&   R   R1   R2   R   R   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_exceptionsl   s    c          C   sÀ   t  d d t ƒ}  t  d d t ƒ} i d d 6d „  d f d „  d	 f g d
 6} t t |  ƒ d | ƒd k st t ‚ t t |  ƒ d | ƒd k s˜ t ‚ t t | ƒ d | ƒd k s¼ t ‚ d  S(   NR1   RP   RO   t   myceilR   c         S   s   |  j  S(   N(   R6   (   R1   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyR8   w   R9   R)   c         S   s   |  j  S(   N(   R6   (   R1   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyR8   w   R9   t   absR   R<   s	   myceil(x)s   fabs(x)s   abs(n)(   R   t   FalseRR   R&   R   R2   R   (   R1   RO   t   custom_functions(    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_user_functionsr   s    "$$c           C   s;  t  t ƒ d k s t ‚ t  t j ƒ d k s3 t ‚ t  t ƒ d k sK t ‚ t  t j ƒ d k sf t ‚ t  t t @ƒ d k s‚ t ‚ t  t t Bƒ d k sž t ‚ t  t ƒ d k s· t ‚ t  t t @t	 @ƒ d k s× t ‚ t  t t Bt	 Bƒ d k s÷ t ‚ t  t t @t	 Bƒ d k st ‚ t  t t Bt	 @ƒ d	 k s7t ‚ d  S(
   NRR   RY   s   x & ys   x | ys   !xs	   x & y & zs	   x | y | zs	   z | x & ys   z & (x | y)(
   R&   RR   R2   R    t   trueRY   t   falseR1   R>   t   z(    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_boolean~   s       c          C   sø   d d l  m }  m } m } m } m } m } t |  t t	 ƒ ƒ d k sO t
 ‚ t | t t	 ƒ ƒ d k sp 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(	   Niÿÿÿÿ(   R   t   Net   Let   Ltt   Gtt   Ges   x == ys   x != ys   x <= ys   x < ys   x > ys   x >= y(   t   sympyR   R`   Ra   Rb   Rc   Rd   R&   R1   R>   R2   (   R   R`   Ra   Rb   Rc   Rd   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_Relational‹   s    .!!!!!c          C   s?  t  t t d k  f t d t f ƒ }  t |  ƒ } d } | | k sI t ‚ t d ƒ } t |  | ƒ } d } | | k s| t ‚ d t  t t d k  f t d t d k  f t d t f ƒ }  t |  ƒ d k sÐ t ‚ t |  d d	 ƒ} | d
 k sô t ‚ d t  t t d k  f t d t d k  f ƒ }  t |  ƒ d k s;t ‚ d  S(   Ni   i   s   ifelse(x < 1,x,x^2)t   taus   tau = ifelse(x < 1,x,x^2);i   s'   2*ifelse(x < 1,x,ifelse(x < 2,x^2,x^3))RQ   t   cs,   c = 2*ifelse(x < 1,x,ifelse(x < 2,x^2,x^3));s&   2*ifelse(x < 1,x,ifelse(x < 2,x^2,NA))(   R   R1   RR   R&   R2   R   (   t   exprRS   RT   Rg   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_Piecewise•   s    %</c          C   sD   d d l  m }  |  t ƒ } t | ƒ } d } | | k s@ t ‚ d  S(   Niÿÿÿÿ(   t   sincs   ifelse(x != 0,sin(x)/x,1)(   Re   Rk   R1   R&   R2   (   Rk   Ri   RS   RT   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_sinc«   s
    c          C   sñ   t  d t t t d k  f t d t d k  f t d t f ƒ ƒ }  |  d k sT t ‚ t t t t d t d t d t d k  f d t f ƒ t t ƒ d } t  | ƒ }  d } |  | k sÃ t ‚ d } t  | d d	 ƒ}  |  | k sí t ‚ d  S(
   Ni   i   s)   2*ifelse(x < 1,x,ifelse(x < 2,x + 1,x^2))i    g      à?s4   x^2 + x*y*z + y^2 + ifelse(x < 0.5,0,1) + cos(z) - 1s9   c = x^2 + x*y*z + y^2 + ifelse(x < 0.5,0,1) + cos(z) - 1;RQ   Rh   (   R&   R   R1   RR   R2   R>   R^   R   (   RE   Ri   RT   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_Piecewise_deep³   s    BKc          C   s@   t  t d k  t t ƒ }  t |  ƒ } d } | | k s< t ‚ d  S(   Ni   s   ifelse(x < 1,y,z)(   R   R1   R>   R^   R&   R2   (   Ri   RE   RT   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_ITEÀ   s    c           C   s   t  t d „  ƒ d  S(   Nc           S   s   t  t t ƒ d d ƒS(   Nt   methodt   garbage(   R&   R   R1   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyR8   È   R9   (   R   t	   TypeError(    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_settingsÇ   s    c          C   s1  d d l  m }  m } d d l m } | d d t ƒ\ } } } | d | ƒ | d | ƒ | d | ƒ } } } t ƒ  }	 t ƒ  |	 _ |  d	 ƒ | }
 |	 j	 |
 ƒ d
 k s° t
 ‚ |  d ƒ | | f } |	 j	 | ƒ d k sá t
 ‚ |  d ƒ | | | f } |	 j	 | ƒ d k st
 ‚ |	 j t ƒ  k s-t
 ‚ d  S(   Niÿÿÿÿ(   R"   R#   (   R   s   n m oRP   RN   t   jt   kR1   s   x[j]RM   s   A[i, j]t   Bs
   B[i, j, k](   t   sympy.tensorR"   R#   Re   R   RR   R    t   sett   _not_rt   _print_IndexedR2   (   R"   R#   R   RO   t   mt   oRN   Rs   Rt   RE   R1   RM   Ru   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_IndexedË   s    /	c          C   sÙ   d }  t  d d |  f ƒ} t  d d |  f ƒ} t  d d |  d f ƒ} t d |  d ƒ } t | | | | d | | | | d | | ƒ } t | j d | j d	 t ƒ} | d
 | d | d f k sÕ t ‚ d  S(   Ni   R>   t   shapeR1   t   Dyi   RN   RQ   t   contracts&   Dy[i] = (y[%s] - y[i])/(x[%s] - x[i]);(   R"   R#   R   R&   t   rhst   lhsRY   R2   (   t   len_yR>   R1   R~   RN   t   et   code0(    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt2   test_rcode_Indexed_without_looking_for_contractionÜ   s    7c    	      C   sž   t  d d t ƒ\ }  } t d ƒ } t d ƒ } t d ƒ } t d | ƒ } t d |  ƒ } d } t | | | f | | d	 | | ƒ} | | k sš t ‚ d  S(
   Ns   n mRP   RM   R1   R>   RN   Rs   sj   for (i in 1:m){
   y[i] = 0;
}
for (i in 1:m){
   for (j in 1:n){
      y[i] = A[i, j]*x[j] + y[i];
   }
}RQ   (   R   RR   R"   R#   R&   R2   (	   RO   Rz   RM   R1   R>   RN   Rs   t   sRh   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_loops_matrix_vectorç   s    	(c          C   s–   t  d d t d t ƒ\ }  } t d ƒ } t d ƒ } t |  | ƒ }  d i |  j j d 6| j d 6} t | |  d	 | |  ƒ} | | k s’ t ‚ d  S(
   Ns   i mRP   t   clsR1   R>   sM   for (i_%(icount)i in 1:m_%(mcount)i){
   y[i_%(icount)i] = x[i_%(icount)i];
}t   icountt   mcountRQ   (	   R   RR   R   R"   R#   t   labelt   dummy_indexR&   R2   (   RN   Rz   R1   R>   t   expectedt   code(    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_dummy_loopsý   s    c          C   sà   d d l  m }  m } d d l m } | d d t ƒ\ } } |  d ƒ } |  d ƒ } |  d ƒ } |  d	 ƒ } | d
 | ƒ }	 | d | ƒ }
 d } t | |	 |
 f | |
 | |	 | |	 d | |	 ƒ} | | k sÜ t ‚ d  S(   Niÿÿÿÿ(   R"   R#   (   R   s   n mRP   RM   R1   R>   R^   RN   Rs   st   for (i in 1:m){
   y[i] = x[i] + z[i];
}
for (i in 1:m){
   for (j in 1:n){
      y[i] = A[i, j]*x[j] + y[i];
   }
}RQ   (   Rv   R"   R#   Re   R   RR   R&   R2   (   R"   R#   R   RO   Rz   RM   R1   R>   R^   RN   Rs   R†   Rh   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_loops_add  s    	8c          C   s÷   d d l  m }  m } d d l m } | d d t ƒ\ } } } } |  d ƒ } |  d ƒ } |  d ƒ }	 | d	 | ƒ }
 | d
 | ƒ } | d | ƒ } | d | ƒ } d } t | | | | f | |
 | | | f d |	 |
 ƒ} | | k só t ‚ d  S(   Niÿÿÿÿ(   R"   R#   (   R   s   n m o pRP   t   at   bR>   RN   Rs   Rt   t   ls¾   for (i in 1:m){
   y[i] = 0;
}
for (i in 1:m){
   for (j in 1:n){
      for (k in 1:o){
         for (l in 1:p){
            y[i] = a[i, j, k, l]*b[j, k, l] + y[i];
         }
      }
   }
}RQ   (   Rv   R"   R#   Re   R   RR   R&   R2   (   R"   R#   R   RO   Rz   R{   RE   R‘   R’   R>   RN   Rs   Rt   R“   R†   Rh   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt&   test_rcode_loops_multiple_contractions(  s    7c          C   s  d d l  m }  m } d d l m } | d d t ƒ\ } } } } |  d ƒ } |  d ƒ } |  d ƒ }	 |  d	 ƒ }
 | d
 | ƒ } | d | ƒ } | d | ƒ } | d | ƒ } d } t | | | | | f | | | | | f |	 | | | f d |
 | ƒ}	 |	 | k st ‚ d  S(   Niÿÿÿÿ(   R"   R#   (   R   s   n m o pRP   R‘   R’   Rh   R>   RN   Rs   Rt   R“   sÐ   for (i in 1:m){
   y[i] = 0;
}
for (i in 1:m){
   for (j in 1:n){
      for (k in 1:o){
         for (l in 1:p){
            y[i] = (a[i, j, k, l] + b[i, j, k, l])*c[j, k, l] + y[i];
         }
      }
   }
}RQ   (   Rv   R"   R#   Re   R   RR   R&   R2   (   R"   R#   R   RO   Rz   R{   RE   R‘   R’   Rh   R>   RN   Rs   Rt   R“   R†   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_loops_addfactorF  s    Kc          C   s'  d d l  m }  m } d d l m } | d d t ƒ\ } } } } |  d ƒ } |  d ƒ } |  d ƒ }	 |  d	 ƒ }
 | d
 | ƒ } | d | ƒ } | d | ƒ } d } d } d } d } t | | | | | f | | | | | f | | | | |	 | | | f d |
 | ƒ}	 t ƒ  } | | | | d  | d <| | | | d  | d <| | | | d  | d <| | | | d  | d <| | | | d  | d <| | | | d  | d <|	 | d k s#|	 | d k s#|	 | d k s#|	 | d k s#|	 | d k s#|	 | d k s#t ‚ d  S(   Niÿÿÿÿ(   R"   R#   (   R   s   n m o pRP   R‘   R’   Rh   R>   RN   Rs   Rt   s   for (i in 1:m){
   y[i] = 0;
}
su   for (i in 1:m){
   for (j in 1:n){
      for (k in 1:o){
         y[i] = b[j]*b[k]*c[i, j, k] + y[i];
      }
   }
}
sL   for (i in 1:m){
   for (k in 1:o){
      y[i] = a[i, k]*b[k] + y[i];
   }
}
sL   for (i in 1:m){
   for (j in 1:n){
      y[i] = a[i, j]*b[j] + y[i];
   }
}
RQ   i    i   i   i   i   i   (	   Rv   R"   R#   Re   R   RR   R&   t   dictR2   (   R"   R#   R   RO   Rz   R{   RE   R‘   R’   Rh   R>   RN   Rs   Rt   t   s0t   s1t   s2t   s3RT   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_loops_multiple_termse  s:    	\	c          C   s=   t  t t t ƒ t }  t |  d t g ƒd k s9 t ‚ d  S(   Nt   dereferences   x + y + (*z) + sin((*z))(   R1   R>   R   R^   R&   R2   (   Ri   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_dereference_printing   s    c          C   s‡  t  t t t d t t d k f t t f ƒ t t ƒ g ƒ }  t d d d ƒ } t |  | ƒ } | d k sq t	 ‚ t d | d t d k f | d t f ƒ t | d ƒ | d } t | ƒ } | d k sÒ t	 ‚ t d d	 d ƒ } t d
 d d ƒ } t  t | d ƒ d t
 | d ƒ g | d | d | d d	 g d | d | d t | d ƒ d d g g ƒ } t | | ƒ d k sƒt	 ‚ d  S(   Ni   i    RM   i   i   s8   A[0] = x*y;
A[1] = ifelse(y > 0,x + 2,y);
A[2] = sin(z);s,   ifelse(x > 0,2*A[2],A[2]) + sin(A[1]) + A[0]t   qi   t   Mi   s   M[0] = sin(q[1]);
M[1] = 0;
M[2] = cos(q[2]);
M[3] = q[1] + q[2];
M[4] = q[3];
M[5] = 5;
M[6] = 2*q[4]/q[1];
M[7] = sqrt(q[0]) + 4;
M[8] = 0;(   i   i    (   i   i    (   i   i    (   i    i    (   i   i    (   i   i    (   i   i    (   i   i    (   i   i    (   i   i    (   i   i    (   i    i    (   R$   R1   R>   R   RR   R   R^   R%   R&   R2   R   R   (   t   matRM   RE   Ri   Rž   RŸ   Rz   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_Matrix_printing¥  s    >C#3c          C   s¹   t  t ƒ t }  t |  ƒ d k s( t ‚ t |  d ƒ } | d k sI t ‚ t t  d t t d ƒ t t d ƒ } | d k s… t ‚ t  t t ƒ ƒ }  t |  ƒ } | d k sµ t ‚ d  S(   Ns	   y*sign(x)R^   s   z = y*sign(x);i   s   x^2 + x*sign(x^2 + 2*x)s   sign(cos(x))(   R   R1   R>   R&   R2   R   (   Ri   RE   (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_sgnÆ  s    *c           C   sQ   t  t t t t ƒ ƒ d k s% t ‚ t  t t d t t ƒ ƒ d k sM t ‚ d  S(   Ns
   x = y + z;t   +s   x += y + z;(   R&   R   R1   R>   R^   R2   R   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_AssignmentÔ  s    %c          C   sO   t  t t d d d ƒ t t d t ƒ g ƒ }  t |  ƒ } | d k sK t ‚ d  S(   Ni    i
   i   t   *s*   for (x = 0; x < 10; x += 2) {
   y *= x;
}(   R   R1   R   R   R>   R&   R2   (   t   ft   sol(    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_rcode_ForÙ  s    -c          C   s¨   t  d d d ƒ }  t  d d d ƒ } t  d d d ƒ } t |  d
 ƒ d k sR t ‚ t d |  d ƒ d k sr t ‚ | d j | |  | ƒ } t | ƒ d	 k s¤ t ‚ d  S(   NRM   i   i   Ru   t   Ci    s   A[0]s   3*A[0]s
   (A - B)[0](   i    i    (   i    i    (   i    i    (   R%   R&   R2   t   subs(   RM   Ru   R©   t   F(    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   test_MatrixElement_printingá  s     N(Y   t
   sympy.coreR    R   R   R   R   R   R   R   R   R	   R
   R   R   t   sympy.functionsR   R   R   R   R   R   R   R   R   R   R   R   R   t
   sympy.setsR   t   sympy.logicR   t   sympy.codegenR   R   R   t   sympy.utilities.pytestR   t   sympy.printing.rcodeR    t   sympy.utilities.lambdifyR!   Rv   R"   R#   t   sympy.matricesR$   R%   Re   R&   t   difflibR'   R(   R1   R>   R^   R3   R4   R@   RC   RF   RG   RI   RK   RL   RU   RV   R[   R_   Rf   Rj   Rl   Rm   Rn   Rr   R|   R…   R‡   R   R   R”   R•   R›   R   R¡   R¢   R¤   R¨   R¬   (    (    (    s>   lib/python2.7/site-packages/sympy/printing/tests/test_rcode.pyt   <module>   s\   XX															
													;		!			