
    sg7                     4   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 d dlmZ d dlm Z   ed	d
      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 Z-d Z.y)    )LambdaSsymbols)Sum)adjoint	conjugate	transpose)eyeMatrix
ShapeErrorImmutableMatrix)AdjointIdentityFunctionMatrix
MatrixExprMatrixSymbolTrace
ZeroMatrixtraceMatPowMatAddMatMul)	OneMatrix)raises)inT)integerABC      c            	         t        t        t              t              sJ t        t        t              t              rJ t	        t
        d        t        t        d            dk(  sJ t        t        ddg d            dk(  sJ t        t        t                    t        t        t                    k(  sJ t        t        t                    t        t        t                    k(  sJ t        t        t                    t        t              k(  sJ t        t        t              z  } t        t        d            dk(  sJ t        t        dd            dk(  sJ t        t        dd            dk(  sJ t        t        dd            dk(  sJ t        t        t         t                     t         k(  sJ t        dt        z  t"        z        dt        t        t"        z        z  k(  sJ t        t        j$                        t        t              k(  sJ t'        d	      \  }}t)        ddt+        ||f||z               }t        |      d
k(  sJ t	        t,        d        t        t              j.                  t        u sJ t1        t        t                    t1        t        t              j3                               k(  sJ t        t              j4                  du sJ y )Nc                       t        t              S N)r   r         ^/var/www/html/venv/lib/python3.12/site-packages/sympy/matrices/expressions/tests/test_trace.py<lambda>ztest_Trace.<locals>.<lambda>   s
    uQx r'   r!   )	      r!   r"               	      r,   r   r*   r+   zi jr-   c                  4    t        t        j                        S r%   )r   r   Oner&   r'   r(   r)   ztest_Trace.<locals>.<lambda>.   s    eAEEl r'   T)
isinstancer   r   r   r   r   r   r
   r   r   r   r   r	   r   r   r   r   r   Tr   r   r   	TypeErrorargstrdoitis_commutative)_r   jFs       r(   
test_Tracer>      s)   eAh&&&%(J///
:'(Q=A19:;rAAA58gaj 1111U1X%
"3333U1X%(***	E!HA !"""Aq!"a'''1a!Q&&&1a!Q&&&1a!Q&&&1Q<1U1Q3Z<''':q!!!5>DAqq!VQFAE23A82222
9*+8<<1uQx=Ca00008""d***r'   c                  n   t        t        t        z         t        t              t        t              z   k(  sJ t        t        t        z         j                  t        t        t              k(  sJ t        t        t        z         j                         t        t              t        t              z   k(  sJ y r%   )r   r   r   r   r7   r   r9   r&   r'   r(   test_Trace_A_plus_Br@   6   ss    Q<58eAh....Q<va|+++Q<%(U1X"5555r'   c                      t        g dgdz        } t        ddd      }t        | d| z  |d|z        }t        |      j                  |k(  sJ t        |      j                         ddt        |      z  z
  k(  sJ y )N)r*   r+   r!   r!   Yr+      )r   r   r   r   r7   r9   )XrB   qs      r(   test_Trace_MatAdd_doitrG   <   sr    A&AS!QAq!A#q"Q$A8<<18==?b1U1X:o---r'   c                      t        ddgddgg      } t        |       j                         dk(  sJ t        | d      }t        |      j                  |k(  sJ t        |      j                         dk(  sJ y )Nr*   r+   r!   r"   r,      )r   r   r9   r   r7   rE   rF   s     r(   test_Trace_MatPow_doitrK   E   sj    AA A8==?aq!A8<<18==?b   r'   c                  v    t        ddgddgg      } t        |       t        |       z   dt        |       z  k(  sJ y )Nr*   r+   r!   r"   )r   r   rE   s    r(   test_Trace_MutableMatrix_plusrN   M   s<    AA A8eAh!E!H*,,,r'   c                  v   t        ddgddgg      } t        | d      }t        |      j                  d      j                  |k(  sJ t        | d| z        }t        |      j                  d      j                  |k(  sJ t        | d| z        }t        |      j                  d      j                  |k(  sJ y )Nr*   r+   r!   r"   F)deep)r   r   r   r9   r7   r   r   rJ   s     r(   test_Trace_doit_deep_FalserQ   S   s    AA Aq!A8==e=$((A---q!A#A8==e=$((A---q!A#A8==e=$((A---r'   c                      t        dt        z        dt        t              z  k(  sJ t        ddgddgg      } t        t	        d|             dk(  sJ y )Nr+   r*   r!   r"   
   )r   r   r   r   r   rM   s    r(   test_trace_constant_factorrT   ]   sP    1:58###!Q!Q()A1"$$$r'   c                      t        t              j                  t              t        t        t        t        f   t        dt
        dz
  f      k(  sJ t        t        d            j                  t              dk(  sJ y )Nr   r*   r!   )r   r   rewriter   r   r   r
   r&   r'   r(   test_trace_rewriterW   d   sY    8C C!Q$!QA$????Q=  %***r'   c                  ~   t        t        t        z        t        t        t        z        k7  sJ t        t        t        z        j                         t        t        t        z        k(  sJ t        t        t        j                  z        j                         t        t        t        j                  z        k(  sJ y r%   )r   r   r   
_normalizer5   r&   r'   r(   test_trace_normalizerZ   i   sv    1:qs###1:  "eAaCj000133<""$ae444r'   c                      t        t        d        t        ddd      } t        |       j	                         | d   | d   z   | d   z   k(  sJ t        t        d            j	                         dk(  sJ y )Nc                  <    t        t              j                         S r%   )r   r   as_explicitr&   r'   r(   r)   z(test_trace_as_explicit.<locals>.<lambda>p   s    uQx335 r'   rE   r!   )r   r   )r*   r*   )r+   r+   )r   
ValueErrorr   r   r]   r
   rM   s    r(   test_trace_as_explicitr_   o   sk    
:56S!QA8!QtWqw%64%@@@@Q=$$&!+++r'   N)/
sympy.corer   r   r   sympy.concreter   sympy.functionsr   r   r	   sympy.matricesr
   r   r   r   sympy.matrices.expressionsr   r   r   r   r   r   r   r   r   r   r   "sympy.matrices.expressions.specialr   sympy.testing.pytestr   	sympy.abcr   r   r   r   r    r>   r@   rG   rK   rN   rQ   rT   rW   rZ   r_   r&   r'   r(   <module>rh      s    ) )  9 9 C C    9 '  Caaa +D6.!-.%+
5,r'   