o
    g7                     @   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 d dlmZ d dlm Z  ed	d
dZ!ede!e!Z"ede!e!Z#edddZ$dd Z%dd Z&dd Z'dd Z(dd Z)dd Z*dd Z+dd  Z,d!d" Z-d#d$ Z.d%S )&    )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                  C   s  t ttts	J t tttrJ ttdd  ttddks#J ttddg ddks1J t	tttt
tks?J ttttt
tksMJ tttttksYJ ttt } ttddksiJ ttdddkstJ ttdddksJ ttd	d	d	ksJ tttttksJ td	t t d	ttt  ksJ ttjttksJ td
\}}tddt||f|| }t|dksJ ttdd  ttjtu sJ tttttt ksJ ttjdu sJ d S )Nc                   S   s   t tS N)r   r    r#   r#   b/var/www/visachat/venv/lib/python3.10/site-packages/sympy/matrices/expressions/tests/test_trace.py<lambda>   s    ztest_Trace.<locals>.<lambda>r    )	      r    r!               	      r(   r   r&   r'   zi jr)   c                   S   s
   t tjS r"   )r   r   Oner#   r#   r#   r$   r%   .   s   
 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Fr#   r#   r$   
test_Trace   s.   $ r9   c                   C   sd   t tt tttt ksJ ttt jtttksJ ttt  tttt ks0J d S r"   )r   r   r   r   r2   r   r4   r#   r#   r#   r$   test_Trace_A_plus_B6   s    (r:   c                  C   sj   t g dgd } tddd}t| d|  |d| }t|j|ks#J t| ddt|  ks3J d S )N)r&   r'   r    r    Yr'      )r   r   r   r   r2   r4   )Xr;   qr#   r#   r$   test_Trace_MatAdd_doit<   s
   $r@   c                  C   s\   t ddgddgg} t|  dksJ t| d}t|j|ks"J t| dks,J d S )Nr&   r'   r    r!   r(      )r
   r   r4   r   r2   r>   r?   r#   r#   r$   test_Trace_MatPow_doitE   s
   
rC   c                  C   s8   t ddgddgg} t| t|  dt|  ksJ d S )Nr&   r'   r    r!   )r
   r   r>   r#   r#   r$   test_Trace_MutableMatrix_plusM   s   $rE   c                  C   s   t ddgddgg} t| d}t|jddj|ksJ t| d|  }t|jddj|ks0J t| d|  }t|jddj|ksDJ d S )Nr&   r'   r    r!   F)deep)r
   r   r   r4   r2   r   r   rB   r#   r#   r$   test_Trace_doit_deep_FalseS   s   
rG   c                  C   sJ   t dt dtt ksJ tddgddgg} t td| dks#J d S )Nr'   r&   r    r!   
   )r   r   r   r   r   rD   r#   r#   r$   test_trace_constant_factor]   s   rI   c                   C   sL   t ttttttf tdtd fksJ t tdtdks$J d S )Nr   r&   r    )r   r   rewriter   r   r   r	   r#   r#   r#   r$   test_trace_rewrited   s   .rK   c                   C   sd   t tt t tt ksJ t tt  t tt ksJ t ttj  t ttj ks0J d S r"   )r   r   r   
_normalizer0   r#   r#   r#   r$   test_trace_normalizei   s    (rM   c                  C   s^   t tdd  tddd} t|  | d | d  | d  ks!J ttd dks-J d S )Nc                   S   s   t t S r"   )r   r   as_explicitr#   r#   r#   r$   r%   p   s    z(test_trace_as_explicit.<locals>.<lambda>r>   r    )r   r   )r&   r&   )r'   r'   )r   
ValueErrorr   r   rN   r	   rD   r#   r#   r$   test_trace_as_explicito   s   (rP   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   r9   r:   r@   rC   rE   rG   rI   rK   rM   rP   r#   r#   r#   r$   <module>   s,    4"	
