ó
¡¼™\c           @   s`  d  d l  m Z m Z m Z d  d l m Z d  d l m Z m Z m	 Z	 d  d l
 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 d  d l m Z m Z e d d e ƒZ e d	 e e ƒ Z  e d
 e e ƒ Z! e d d d ƒ Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d S(   iÿÿÿÿ(   t   Lambdat   St   symbols(   t   Sum(   t   adjointt	   conjugatet	   transpose(   t   eyet   Matrixt
   ShapeErrort   ImmutableMatrix(   t   Adjointt   Identityt   FunctionMatrixt
   MatrixExprt   MatrixSymbolt   Tracet
   ZeroMatrixt   tracet   MatPowt   MatAddt   MatMul(   t   raisest   XFAILt   nt   integert   At   Bt   Ci   i   c          C   s‰  t  t t ƒ t ƒ s t ‚ t  t t ƒ t ƒ s7 t ‚ t t d „  ƒ t t d ƒ ƒ d k se t ‚ t t	 d d d d d d d d d d	 d
 g	 ƒ ƒ d k s¤ t ‚ t
 t t ƒ ƒ t t t ƒ ƒ k sÎ t ‚ t t t ƒ ƒ t t t ƒ ƒ k sø t ‚ t t t ƒ ƒ t t ƒ k st ‚ t t t ƒ t t d ƒ ƒ d k sHt ‚ t t d d ƒ ƒ d k sit ‚ t d t t ƒ d t t t ƒ k s—t ‚ t t j ƒ t t ƒ k s¸t ‚ t d ƒ \ }  } t d d t |  | f |  | ƒ ƒ } t | ƒ d d d k st ‚ t t d „  ƒ t t ƒ j t k s:t ‚ t t t ƒ ƒ t t t ƒ j ƒ  ƒ k sjt ‚ t t ƒ j t k s…t ‚ d  S(   Nc           S   s
   t  t ƒ S(   N(   R   R   (    (    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt   <lambda>   t    i   i   i   i   i   i   i   i   i	   i   i    s   i jc           S   s   t  t j ƒ S(   N(   R   R   t   One(    (    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyR   (   R   i    i   i   (   t
   isinstanceR   R   t   AssertionErrorR   R   R	   R   R   R   R   R   R   R   R   R   R   t   TR   R   R    t	   TypeErrort   argt   strt   doitt   is_commutativet   True(   t   it   jt   F(    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt
   test_Trace   s(    ?**$!.!% 0c           C   sŠ   t  t t ƒ t t ƒ t t ƒ k s, t ‚ t t t ƒ j t t t ƒ k sT t ‚ t t t ƒ j ƒ  t t ƒ t t ƒ k s† t ‚ d  S(   N(   R   R   R   R   R!   R$   R   R&   (    (    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt   test_Trace_A_plus_B0   s    ,(c          C   s–   t  d d d g g d ƒ }  t d d d ƒ } t |  d |  | d | ƒ } t | ƒ j | k sf t ‚ t | ƒ j ƒ  d d t | ƒ k s’ t ‚ d  S(   Ni   i   i   t   Yiýÿÿÿi   (   R
   R   R   R   R$   R!   R&   (   t   XR.   t   q(    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt   test_Trace_MatAdd_doit6   s
    c          C   sˆ   t  d d g d d g g ƒ }  t |  ƒ j ƒ  d k s< t ‚ t |  d ƒ } t | ƒ j | k sf t ‚ t | ƒ j ƒ  d k s„ t ‚ d  S(   Ni   i   i   i   i   i   (   R   R   R&   R!   R   R$   (   R/   R0   (    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt   test_Trace_MatPow_doit?   s
    c          C   sN   t  d d g d d g g ƒ }  t |  ƒ t |  ƒ d t |  ƒ k sJ t ‚ d  S(   Ni   i   i   i   (   R   R   R!   (   R/   (    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt   test_Trace_MutableMatrix_plusG   s    c          C   sÌ   t  d d g d d g g ƒ }  t |  d ƒ } t | ƒ j d t ƒ j | k sT t ‚ t |  d |  ƒ } t | ƒ j d t ƒ j | k sŽ t ‚ t |  d |  ƒ } t | ƒ j d t ƒ j | k sÈ t ‚ d  S(   Ni   i   i   i   t   deep(	   R   R   R   R&   t   FalseR$   R!   R   R   (   R/   R0   (    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt   test_Trace_doit_deep_FalseM   s    ''c          C   si   t  d t ƒ d t t ƒ k s& t ‚ t d d g d d g g ƒ }  t  t d |  ƒ ƒ d k se t ‚ d  S(   Ni   i   i   i   i
   (   R   R   R   R!   R
   R   (   R/   (    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt   test_trace_constant_factorW   s    &c           C   s(   t  t t ƒ j t ƒ t ƒ s$ t ‚ d  S(   N(   R    R   R   t   rewriteR   R!   (    (    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt   test_rewrite^   s    N(+   t
   sympy.coreR    R   R   t   sympy.concreteR   t   sympy.functionsR   R   R   t   sympy.matricesR   R   R	   R
   t   sympy.matrices.expressionsR   R   R   R   R   R   R   R   R   R   R   t   sympy.utilities.pytestR   R   R(   R   R   R   R   R,   R-   R1   R2   R3   R6   R7   R9   (    (    (    sJ   lib/python2.7/site-packages/sympy/matrices/expressions/tests/test_trace.pyt   <module>   s"   "L							
	