ó
~9­\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
 d  d l m Z m Z m Z m Z 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 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* d  d l+ m, Z, m- Z- m. Z. d  d l/ m0 Z0 m1 Z1 e d	 d
 e2 ƒ\ Z3 Z4 Z5 Z6 Z7 e d ƒ Z8 e% d e3 e4 ƒ Z9 e% d e4 e5 ƒ Z: e% d e3 e3 ƒ Z; e% d e3 e3 ƒ Z< e% d e4 e3 ƒ Z= e% d e3 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. „  ZZ e1 d/ „  ƒ Z[ d0 „  Z\ d1 „  Z] d2 „  Z^ d3 „  Z_ d4 „  Z` d5 „  Za e1 d6 „  ƒ Zb d7 „  Zc d8 „  Zd d9 „  Ze d: „  Zf d; S(<   iÿÿÿÿ(
   t   KroneckerDeltat   difft	   Piecewiset   Sumt   Dummyt   factort   expandt   zerost	   gcd_termst   Eq(   t   St   symbolst   Addt   Mult   SympifyError(   t   long(   t	   transposet   sint   cost   sqrtt   cbrtt   exp(   t   simplify(   t   Identityt   ImmutableMatrixt   Inverset   MatAddt   MatMult   MatPowt   Matrixt
   MatrixExprt   MatrixSymbolt
   ShapeErrort
   ZeroMatrixt   SparseMatrixt	   Transposet   Adjoint(   t   MatrixElementt   GenericZeroMatrixt   GenericIdentity(   t   raisest   XFAILs	   n m l k pt   integert   xt   At   Bt   Ct   Dt   Et   wi   c           C   sN   t  j t t f k s t ‚ t  t j t t f k s: t ‚ t t d „  ƒ d  S(   Nc           S   s   t  t S(   N(   R-   R,   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   <lambda>   t    (	   R,   t   shapet   nt   mt   AssertionErrorR-   t   lR(   R    (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt
   test_shape   s    c           C   s   t  t j t j k s t ‚ t  t j t k s5 t ‚ d t t t t t j Œ  k s\ t ‚ t t j t t	 f k s{ t ‚ d  S(   Ni   (
   R+   R,   R4   R7   t	   __class__R   R!   R-   R5   R8   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_matexpr    s    'c          C   s¦   t  d t t ƒ }  t  d t t ƒ } t  d t t ƒ } |  j t t ƒ j t t f k s] t ‚ |  | j | | ƒ |  | k sƒ t ‚ |  | j t t ƒ j s¢ t ‚ d  S(   NR,   R-   R.   (   R   R5   R6   R8   t   subsR4   R7   t	   is_square(   R,   R-   R.   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt	   test_subs'   s    '&c          C   s?  t  d t t ƒ }  t t t ƒ } |  | |  k s7 t ‚ |  | j t t t ƒ k sY t ‚ | |  j t t t ƒ k s{ t ‚ |  |  t |  j Œ  k sš t ‚ | s§ t ‚ t | ƒ t t t ƒ k sÈ t ‚ | j ƒ  | k sà t ‚ t t t ƒ d t	 t ƒ k st ‚ t
 t ƒ  | d Wd  QXt
 t ƒ  | d Wd  QXd  S(   NR,   i    i   (   R   R5   R6   R!   R7   t   TR4   R   t	   conjugateR   R(   R    (   R,   t   Z(    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_ZeroMatrix3   s    ""!%c          C   s}   t  t t t d t ƒt ƒ }  t |  j t ƒ s6 t ‚ |  j ƒ  t  d t t ƒ k s[ t ‚ t |  j ƒ  j t ƒ sy t ‚ d  S(   Nt   evaluatei   (	   R!   R   R5   t   Falset
   isinstancet   rowsR7   t   doitR   (   t   Znn(    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_ZeroMatrix_doitH   s    %c          C   s~  t  d t t ƒ }  t d ƒ \ } } t t ƒ } t t ƒ } |  | |  k sR t ‚ | |  |  k sh t ‚ t | ƒ | k s€ t ‚ | j ƒ  | k s˜ t ‚ | j ƒ  | k s° t ‚ | | | f d k sÌ t ‚ t	 | | | f | d t d f | d t d f ƒ j
 t d ƒ j ƒ  d k s t ‚ t	 t	 | | | f | d t d f ƒ | d t d f ƒ j
 t d ƒ j ƒ  d k szt ‚ d  S(   NR,   s   i ji    i   i   (   R   R5   R6   R   R   R7   R   t   inverseR@   R   R<   RG   (   R,   t   it   jt   Int   Im(    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_IdentityO   s    Tc          C   sw   t  t t t d t ƒƒ }  t |  j t ƒ s3 t ‚ |  j ƒ  t  d t ƒ k sU t ‚ t |  j ƒ  j t ƒ ss t ‚ d  S(   NRC   i   (	   R   R   R5   RD   RE   RF   R7   RG   R   (   t   Inn(    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_Identity_doitb   s    "c              s/  t  d t t ƒ ‰  t  d t t ƒ ‰ t ˆ  ˆ t ƒ s= t ‚ ˆ  ˆ j ˆ  j k sY t ‚ t ˆ  ˆ  d ˆ t ƒ sz t ‚ t t	 ‡  ‡ f d †  ƒ t t
 ‡  f d †  ƒ t t
 ‡  f d †  ƒ t t
 ‡  f d †  ƒ ˆ  t t t ƒ ˆ  t t t ƒ k st ‚ t t
 ƒ  t t t ƒ t d ƒ Wd  QXd  S(	   NR,   R-   i   c              s   ˆ  ˆ j  S(   N(   R?   (    (   R,   R-   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   q   R3   c              s   ˆ  d S(   Ni   (    (    (   R,   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   r   R3   c              s   d ˆ  S(   Ni   (    (    (   R,   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   s   R3   c              s   d ˆ  S(   Ni   (    (    (   R,   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   t   R3   i    (   R   R5   R6   RE   R   R7   R4   R   R(   R    t	   TypeErrorR!   R
   (    (    (   R,   R-   sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_additioni   s    !,c             sè  t  d t t ƒ ‰  t  d t t ƒ ‰ t  d t t ƒ }  d ˆ  ˆ j t t f k sY t ‚ ˆ  d ˆ t t t ƒ k s| t ‚ t t ‡  ‡ f d †  ƒ d ˆ  j ˆ  j k s± t ‚ ˆ  t t t ƒ ˆ t t t ƒ k sÝ t ‚ |  t	 t ƒ |  j
 t	 t ƒ k st ‚ ˆ d t j ˆ k s#t ‚ t t ‡ f d †  ƒ t  d t t ƒ ‰  t  d t t ƒ ‰ t	 t ƒ ˆ  ˆ ˆ  ˆ k st ‚ ˆ  d ˆ  ˆ  d k sŸt ‚ ˆ  d ˆ  j
 d ˆ  j
 k sÃt ‚ ˆ  d ˆ  j
 d ˆ  k sät ‚ d  S(	   NR,   R-   R.   i   i    c              s   ˆ ˆ  S(   N(    (    (   R,   R-   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   „   R3   c              s   d ˆ  S(   Ni   (    (    (   R-   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   Œ   R3   i   (   R   R5   R6   R8   R4   R7   R!   R(   R    R   t   IR
   t   Halft   NotImplementedError(   R.   (    (   R,   R-   sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_multiplication{   s"    ##,)$$c          C   sY  t  d t t ƒ }  t |  d ƒ } | j d k s6 t ‚ | j |  k sK t ‚ |  t j t k sd t ‚ |  d t t ƒ k s€ t ‚ |  d |  k s– t ‚ |  d | k s¬ t ‚ |  d t |  ƒ k sÈ t ‚ |  d d |  k sâ t ‚ |  d d |  d k s t ‚ |  t j	 t
 |  ƒ k st ‚ |  t d ƒ d t |  ƒ k sEt ‚ t t d „  ƒ d  S(	   NR,   i   i    i   iÿÿÿÿi   i   c           S   s   t  d d d ƒ d S(   NR-   i   i   (   R   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   §   R3   (   R   R5   R   R   R7   t   baseR   R   R
   RU   R   R   R(   R    (   R,   t   AA(    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatPow—   s    &c             sz   t  d ƒ \ ‰ ‰  ‰ t d ˆ ˆ  ƒ }  |  j ˆ ˆ  f k sB t ‚ t t ‡  ‡ ‡ f d †  ƒ |  j ƒ  |  k sv t ‚ d  S(   Ns   n,m,tt   Xc              s   t  d ˆ ˆ  ƒ ˆ ƒ S(   NR[   (   R   (    (   R6   R5   t   t(    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   ®   R3   (   R   R   R4   R7   R(   RR   RG   (   R[   (    (   R6   R5   R\   sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatrixSymbolª   s
    c              sp   t  d d d ƒ ‰  t ˆ  ƒ t d d ‡  f d †  ƒ k s? t ‚ t ˆ  ƒ t d d ‡  f d †  ƒ k sl t ‚ d  S(   NR[   i   c            s   ˆ  |  | f S(   N(    (   RK   RL   (   R[   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   ´   R3   c            s   ˆ  |  | f S(   N(    (   RK   RL   (   R[   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   µ   R3   (   R   R   R7   R   (    (    (   R[   sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_dense_conversion²   s    -c           C   s)   t  t j t t  t f ƒ k s% t ‚ d  S(   N(   R.   R/   t   free_symbolst   setR7   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_free_symbols¸   s    c           C   s,   t  t j t d d d ƒ t ƒ s( t ‚ d  S(   NR[   i   (   RE   R
   t   ZeroR   R   R7   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_zero_matmul¼   s    c          C   sp   t  d d d ƒ }  t t |  t t t ƒ d t t ƒ d g g ƒ ƒ ƒ t |  t d g g ƒ ƒ k sl t ‚ d  S(   NR,   i   i   (   R   R   R   R   R   R+   R   R7   (   R,   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_matadd_simplifyÀ   s    6c          C   sp   t  d d d ƒ }  t t |  t t t ƒ d t t ƒ d g g ƒ ƒ ƒ t |  t d g g ƒ ƒ k sl t ‚ d  S(   NR,   i   i   (   R   R   R   R   R   R+   R   R7   (   R,   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_matmul_simplifyÆ   s    6c          C   sÞ   t  d t t ƒ }  t  d t t ƒ } t  d t t ƒ } t t ƒ t t t ƒ |  t |  | ƒ t |  |  ƒ t |  ƒ t	 |  ƒ t
 | ƒ t | d ƒ t | d ƒ t | d ƒ g } x, | D]$ } | | j | j Œ  k s² t ‚ q² Wd  S(   NR,   R-   R[   i   iÿÿÿÿi    (   R   R5   R6   R8   R   R!   R   R   R#   R$   R   R   R:   t   argsR7   (   R,   R-   R[   t   objst   obj(    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_invariantsÌ   s    03c          C   sB   t  d t t ƒ }  |  d |  t t f |  t d t d f d  S(   NR,   i   i   (   i   i   (   R   R5   R6   R8   t   k(   R,   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_indexingÖ   s    c              s4  t  d d d ƒ ‰  ˆ  d ˆ  d
 k s, t ‚ ˆ  t d ƒ ˆ  d k sL t ‚ ˆ  d ˆ  d k sf t ‚ t ˆ  d  d … d  d … f ƒ ˆ  d ˆ  d ˆ  d ˆ  d g k s° t ‚ t t ‡  f d †  ƒ t t ‡  f d †  ƒ t  d t t ƒ ‰ t t ‡ f d	 †  ƒ t  d t d ƒ ‰ ˆ d ˆ d k s0t ‚ d  S(   NR,   i   i   i   i    c              s   ˆ  d S(   Ni   (    (    (   R,   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   ã   R3   c              s   ˆ  t  S(   N(   R5   (    (   R,   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   ä   R3   R-   c              s   ˆ  d S(   Ni   (    (    (   R-   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   æ   R3   (   i    i   (   i    i   (   i   i    (   i    i    (   i    i   (   i   i    (   i   i   (   i   i    (   R   R7   R   t   listR(   t
   IndexErrorR5   R6   (    (    (   R,   R-   sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_single_indexingÝ   s     Jc           C   s.   t  d t  d t  d t  d k s* t ‚ d  S(   Ni    i   (   i    i   (   i   i    (   i   i    (   i    i   (   R,   R7   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatrixElement_commutativeë   s    c          C   sp  t  d d d ƒ }  |  j ƒ  j ƒ  |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f |  d d f k slt ‚ d  S(   NR,   i   i    i   i   i   (   R   t   as_explicitt   detR7   (   R,   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatrixSymbol_determinantï   s    ÿ ÿ ÿ ÿ ÿ c           C   s3   t  d t  d j t  d ƒ t  d k s/ t ‚ d  S(   Ni   i    (   i   i    (   i    i    (   i    i    (   i   i    (   R,   R   R7   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatrixElement_diff   s    c          C   sT   t  d d d ƒ }  t d d g ƒ } |  d j |  | ƒ j ƒ  | d k sP t ‚ d  S(	   Nt   ui   i   i   i   i    (   i    i    (   i    i    (   R   R   R<   RG   R7   (   Rt   t   v(    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatrixElement_doit  s    c          C   sG  t  t ƒ }  t |  d ƒ j ƒ  |  d k s1 t ‚ |  t |  k sG t ‚ t |  d ƒ j ƒ  |  d k sl t ‚ |  d |  k s‚ t ‚ t |  d ƒ j ƒ  |  d k s§ t ‚ t  d ƒ } t | d ƒ j ƒ  | t k sØ t ‚ t | d ƒ j ƒ  | k sù t ‚ t | d ƒ j ƒ  | d k st ‚ t | d ƒ j ƒ  | d k sCt ‚ d  S(   Ni   i    i   iþÿÿÿi   (   R   R5   R   RG   R7   (   t   Mt   N(    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_identity_powers
  s    %%%%!%c              s7  t  t t ƒ ‰  ˆ  d ˆ  k s% t ‚ t t ‡  f d †  ƒ ˆ  d t t ƒ k sW t ‚ t ˆ  d ƒ j ƒ  ˆ  d k s| t ‚ t t ‡  f d †  ƒ t  d d ƒ ‰ t ˆ d ƒ j ƒ  ˆ d k sÆ t ‚ t t ‡ f d †  ƒ ˆ d t ˆ d ƒ j ƒ  k st ‚ ˆ d t d ƒ k st ‚ t t ‡ f d †  ƒ d  S(	   Ni   c              s   ˆ  d S(   Niþÿÿÿ(    (    (   t   z1(    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2     R3   i    i   c              s   t  ˆ  d ƒ j ƒ  S(   Niþÿÿÿ(   R   RG   (    (   Rz   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2     R3   i   c              s   ˆ  d S(   Niýÿÿÿ(    (    (   t   z2(    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   !  R3   c              s   t  ˆ  d ƒ j ƒ  S(   Niÿÿÿÿ(   R   RG   (    (   R{   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   $  R3   (   R!   R5   R7   R(   t
   ValueErrorR   R   RG   (    (    (   Rz   R{   sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_Zero_power  s    %%%c          C   so  t  t t t d f t t d f ƒ }  t t t f j  t t t f ƒ d k sV t ‚ t t t f j  t d ƒ t d t ƒ t d t ƒ k s• t ‚ t |  ƒ d k s­ t ‚ t |  j ƒ  ƒ d k sË t ‚ d  St	 d ƒ } |  j
 t t | t ƒ t t | f | d t d f ƒ ƒ st ‚ |  j ƒ  j
 t t t t f t d k t t d k @f d t f ƒ ƒ skt ‚ d  S(   Ni    i   s9   Sum(KroneckerDelta(_i_1, p)*D[k, _i_1], (_i_1, 0, n - 1))s8   Piecewise((D[k, p], (p >= 0) & (p <= n - 1)), (0, True))t   _i_1(   i    i    (   R   R/   R1   Rj   t   pR7   R    t   strRG   R   t   dummy_eqR   R5   R   t   True(   t   dexprR~   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_matrixelement_diff'  s    '/?Bc             s]  t  d ƒ \ }  } } } t |  | g | | g g ƒ ‰  t  d ƒ \ ‰ } ˆ  ˆ | f } t | t ƒ sm t ‚ t d d g d d g g ƒ } | ˆ | f } t | t ƒ s° t ‚ x† d d d d g D]r \ } }	 | j i | ˆ 6|	 | 6ƒ ˆ  | |	 f k st ‚ | j i | ˆ 6|	 | 6ƒ | | |	 f k sÃ t ‚ qÃ Wt d	 d d ƒ }
 |
 d j |
 ˆ  ƒ |  k smt ‚ |
 ˆ | f j |
 ˆ  ƒ ˆ  ˆ | f k sŸt ‚ ˆ  ˆ | f j ˆ  |
 ƒ |
 ˆ | f k sÑt ‚ t ˆ  d ˆ d | f t ƒ søt ‚ ˆ  d ˆ d | f j i d ˆ 6d | 6ƒ ˆ  d k s7t ‚ t ˆ  ˆ d f t ƒ sVt ‚ ˆ  ˆ d f j ˆ d ƒ ˆ  d k s‚t ‚ ˆ  d ˆ f j ˆ d ƒ ˆ  d k s®t ‚ ˆ  ˆ | f j |  ƒ t d d g d d g g ƒ ˆ | f k sõt ‚ t	 t
 ‡  ‡ f d
 †  ƒ t	 t
 ‡  ‡ f d †  ƒ t	 t
 ‡  ‡ f d †  ƒ t	 t
 ‡  ‡ f d †  ƒ d  S(   Ns   x y z ws   i, ji   i   i   i   i    i   R,   c              s   ˆ  ˆ d f S(   Ni   (    (    (   Rw   RK   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   N  R3   c              s   ˆ  ˆ d f S(   Niÿÿÿÿ(    (    (   Rw   RK   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   O  R3   c              s   ˆ  d ˆ f S(   Ni   (    (    (   Rw   RK   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   P  R3   c              s   ˆ  d ˆ f S(   Niÿÿÿÿ(    (    (   Rw   RK   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   Q  R3   (   i    i    (   i    i   (   i   i    (   i   i   (   i    i    (   i   i    (   i    i    (   i    i   (   R   R   RE   R%   R7   R"   R<   R   R   R(   R|   (   R+   t   yt   zR1   RL   t   Mijt   Mst   msijt   oit   ojR,   (    (   Rw   RK   sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatrixElement_with_values5  s2    37"22'?,,Gc          C   s2   t  d d d ƒ }  |  j ƒ  |  d k s. t ‚ d  S(   NR-   i   iÿÿÿÿ(   R   t   invR7   (   R-   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_invT  s    c          C   s.  t  d t t ƒ }  t  d t t ƒ } |  | t t } |  t | t |  t | t } | | k sj t ‚ t | ƒ | k s‚ t ‚ t | ƒ | k sš t ‚ | d |  d | d |  d t | d d |  d } t t ƒ } t | ƒ | t | d |  d | t | d d |  d g k s*t ‚ d  S(   NR,   R-   iÿÿÿÿ(   R   R5   R.   R/   R7   R   R   R   (   R,   R-   t   expr1t   expr2t   exprRT   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_factor_expandX  s    ":c          C   sˆ   t  d d d ƒ }  |  j |  j j ƒ  t |  j |  j d |  j |  j d g |  j |  j d |  j |  j d	 g g ƒ k s„ t ‚ d  S(
   NR,   i   i   i    i   (   i    i    (   i    i   (   i   i    (   i   i   (   R   R?   RT   Rp   R   R7   (   R,   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_issue_2749g  s    ;c          C   sM   t  d d d ƒ }  |  j |  j ƒ  d t |  d d g g ƒ k sI t ‚ d  S(   NR+   i   iÿÿÿÿi    iþÿÿÿ(   i    i    (   R   R?   Rp   R   R7   (   R+   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_issue_2750m  s    c          C   s¢   t  d d d ƒ }  t  d d d ƒ } t |  | ƒ t k s? t ‚ t |  d | d ƒ j t k se t ‚ t d d ƒ }  t d d ƒ } t |  | ƒ t k sž t ‚ d  S(	   NR,   i   i   R-   i   i    (   i   i    (   i   i    (   R   R	   RD   R7   t   funcR!   R‚   (   R,   R-   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_issue_7842r  s    &c             sæ   t  ƒ  ‰  t d t t ƒ }  ˆ  ˆ  k s- t ‚ ˆ  |  k s? t ‚ |  ˆ  k sQ t ‚ ˆ  j s` t ‚ t t ‡  f d †  ƒ t t ‡  f d †  ƒ t t ‡  f d †  ƒ t ƒ  ˆ  k s· t ‚ t ˆ  |  ƒ t |  ƒ k sØ t ‚ t ˆ  ƒ d  S(   NR,   c              s   ˆ  j  S(   N(   R4   (    (   R†   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   †  R3   c              s   ˆ  j  S(   N(   RF   (    (   R†   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   ‡  R3   c              s   ˆ  j  S(   N(   t   cols(    (   R†   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   ˆ  R3   (	   R&   R   R5   R7   t   is_ZeroMatrixR(   RR   R   t   hash(   R,   (    (   R†   sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_generic_zero_matrix|  s    	!c             sü   t  ƒ  ‰  t d t t ƒ }  ˆ  ˆ  k s- t ‚ ˆ  |  k s? t ‚ |  ˆ  k sQ t ‚ ˆ  j s` t ‚ ˆ  d ˆ  k sv t ‚ t t ‡  f d †  ƒ t t ‡  f d †  ƒ t t ‡  f d †  ƒ t ƒ  ˆ  k sÍ t ‚ t ˆ  |  ƒ t |  ƒ k sî t ‚ t ˆ  ƒ d  S(   NR,   iÿÿÿÿc              s   ˆ  j  S(   N(   R4   (    (   RT   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   ›  R3   c              s   ˆ  j  S(   N(   RF   (    (   RT   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2   œ  R3   c              s   ˆ  j  S(   N(   R—   (    (   RT   (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2     R3   (	   R'   R   R5   R7   t   is_IdentityR(   RR   R   R™   (   R,   (    (   RT   sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_generic_identity  s    	!c          C   s×  t  d ƒ }  t d d ƒ } t d |  ƒ t |  d ƒ k oJ |  | g k n sU t ‚ t d d g d d g g ƒ } t t d t g d t d t g g ƒ } t t | ƒ t | t ƒ k oÆ | k n sÑ t ‚ t d d d ƒ } t | | ƒ t | | ƒ k st ‚ t | | ƒ t | | ƒ k s+t ‚ t t | | ƒ } t | t | ƒ } t | | t ƒ } | | k oŒ| k oŒt | | ƒ k n s—t ‚ t t | | ƒ } t | t | ƒ } t | | t ƒ } | | k oø| k oøt | | ƒ k n st ‚ t | | ƒ | d k s"t ‚ t | | | ƒ t | | d ƒ k sMt ‚ t | | | ƒ t | d | ƒ k sxt ‚ t | | | ƒ t | | | ƒ k s¢t ‚ t | t | | t ƒ t | | d ƒ k sÓt ‚ d  S(   Ni   i    i   i   i   R,   (   R   R!   R   R7   R   R+   R   R   (   R†   Rz   Rw   t   MxR,   t   at   bt   c(    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatMul_postprocessor¤  s,    :*4$$66++*c          C   s:   t  d ƒ }  t |  t j ƒ t t j |  ƒ k s6 t ‚ d  S(   Ni   (   R   R   R
   t   NaNR7   (   R†   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatAdd_postprocessor_xfailÀ  s    c          C   s¢  t  d ƒ }  t d |  ƒ t |  d ƒ k o5 |  k n s@ t ‚ t t j |  ƒ } | t |  t j ƒ k sp t ‚ t | t ƒ s… t ‚ | j t j |  f k s£ t ‚ t t j |  ƒ } | t |  t j ƒ k sÓ t ‚ t | t ƒ sè t ‚ | j t j |  f k st ‚ t |  t j ƒ } t | t ƒ s-t ‚ | j t j |  f k sKt ‚ t	 d d g d d g g ƒ } t t
 | ƒ } | t | t
 ƒ k s“t ‚ t | t ƒ s¨t ‚ | j t
 | f k sÃt ‚ t d d d ƒ } t | | ƒ t | | ƒ k o| | k n st ‚ t t
 | | ƒ } | t | t
 | ƒ k o“t | | t
 ƒ k o“t t
 | | ƒ k o“t | t
 | ƒ k o“t | | t
 ƒ k n sžt ‚ t | t ƒ s³t ‚ | j t
 | | f k sÒt ‚ t | | ƒ d | k sñt ‚ t | | | ƒ t | | | ƒ k o?t | | | ƒ k o?| d | k n sJt ‚ t | t
 | | t
 ƒ } t | t ƒ swt ‚ | j d t
 | d | f k sžt ‚ d  S(   Ni   i    i   i   i   R,   (   R   R   R7   R
   t   InfinityRE   Rf   t   ComplexInfinityR¢   R   R+   R   (   R†   Rž   Rw   R,   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_MatAdd_postprocessorÇ  s:    48Yc          C   s‘   t  t t t t t ƒ ƒ t k s* t ‚ t d t t d t t ƒ }  t  |  ƒ t k sb t ‚ |  j d t t d t t f k s t ‚ d  S(   Ni   i   (   t   typeR   R.   R/   R   R7   R   Rf   (   Rž   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt    test_simplify_matrix_expressionsõ  s    * c          C   s¨   t  d d d ƒ }  t  d d d ƒ } t |  ƒ t | ƒ } t | ƒ t |  ƒ } | | k sb t ‚ | | d k sx t ‚ t | t ƒ sŽ t ‚ t | t ƒ s¤ t ‚ d  S(   NR,   i   R-   i    (   R   R   R7   RE   (   R,   R-   R   R   (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_expü  s    c           C   s   t  t d „  ƒ d  S(   Nc           S   s   t  d d d ƒ S(   Ni   i   R,   (   R   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyR2     R3   (   R(   R   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   test_invalid_args  s    N(g   t   sympyR    R   R   R   R   R   R   R   R   R	   t
   sympy.coreR
   R   R   R   R   t   sympy.core.compatibilityR   t   sympy.functionsR   R   R   R   R   R   t   sympy.simplifyR   t   sympy.matricesR   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   t"   sympy.matrices.expressions.matexprR%   R&   R'   t   sympy.utilities.pytestR(   R)   R‚   R5   R6   R8   Rj   R   R+   R,   R-   R.   R/   R0   R1   R9   R;   R>   RB   RI   RO   RQ   RS   RW   RZ   R]   R^   Ra   Rc   Rd   Re   Ri   Rk   Rn   Ro   Rr   Rs   Rv   Ry   R}   R„   RŒ   RŽ   R’   R“   R”   R–   Rš   Rœ   R¡   R£   R¦   R¨   R©   Rª   (    (    (    sL   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_matexpr.pyt   <module>   sn   F(.^!																	
														
				.		
