a
    kh7                     @   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sFJ ttddg ddksbJ t	tttt
tks~J ttttt
tksJ tttttksJ ttt } ttddksJ ttdddksJ ttdddksJ ttd	d	d	ksJ tttttks.J td	t t d	ttt  ksTJ ttjttkslJ 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#   Y/var/www/auris/lib/python3.9/site-packages/sympy/matrices/expressions/tests/test_trace.py<lambda>       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   ZOner#   r#   r#   r$   r%   .   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doitZis_commutative)_r   jFr#   r#   r$   
test_Trace   s.    &"r8   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s`J d S r"   )r   r   r   r   r2   r   r4   r#   r#   r#   r$   test_Trace_A_plus_B6   s     r9   c                  C   sj   t g dgd } tddd}t| d|  |d| }t|j|ksFJ t| ddt|  ksfJ 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sDJ t| dksXJ d S )Nr'   r(   r    r!   r)      )r
   r   r4   r   r2   r=   r>   r#   r#   r$   test_Trace_MatPow_doitE   s
    
rB   c                  C   s8   t ddgddgg} t| t|  dt|  ks4J d S )Nr'   r(   r    r!   )r
   r   r=   r#   r#   r$   test_Trace_MutableMatrix_plusM   s    rD   c                  C   s   t ddgddgg} t| d}t|jddj|ks8J t| d|  }t|jddj|ks`J t| d|  }t|jddj|ksJ d S )Nr'   r(   r    r!   F)deep)r
   r   r   r4   r2   r   r   rA   r#   r#   r$   test_Trace_doit_deep_FalseS   s    
rF   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sFJ d S )Nr(   r'   r    r!   
   )r   r   r   r   r   rC   r#   r#   r$   test_trace_constant_factor]   s    rH   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sHJ d S )Nr   r'   r    )r   r   Zrewriter   r   r   r	   r#   r#   r#   r$   test_trace_rewrited   s    .rI   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s`J d S r"   )r   r   r   
_normalizer0   r#   r#   r#   r$   test_trace_normalizei   s     rK   c                  C   s^   t tdd  tddd} t|  | d | d  | d  ksBJ ttd dksZJ d S )Nc                   S   s   t t S r"   )r   r   as_explicitr#   r#   r#   r$   r%   p   r&   z(test_trace_as_explicit.<locals>.<lambda>r=   r    )r   r   )r'   r'   )r(   r(   )r   
ValueErrorr   r   rL   r	   rC   r#   r#   r$   test_trace_as_explicito   s    (rN   N)/Z
sympy.corer   r   r   Zsympy.concreter   Zsympy.functionsr   r   r   Zsympy.matricesr	   r
   r   r   Zsympy.matrices.expressionsr   r   r   r   r   r   r   r   r   r   r   Z"sympy.matrices.expressions.specialr   Zsympy.testing.pytestr   Z	sympy.abcr   r   r   r   r   r8   r9   r?   rB   rD   rF   rH   rI   rK   rN   r#   r#   r#   r$   <module>   s*   4"	
