U
    L?h	                     @   s   d dl mZmZ d dlmZmZmZmZmZ d dl	m
Z
mZ d dlmZmZ d dlmZ d dlmZ d dlmZ edd	d
\ZZZedeeZedeeZedeeZedeeZedeeZdd Zdd Zdd Zdd Z dd Z!dd Z"dS )    )symbolsS)MatrixSymbolInverseMatPow
ZeroMatrix	OneMatrix)NonInvertibleMatrixErrorNonSquareMatrixError)eyeIdentity)raises)Q)refinezn m lT)integerABCDEc                   C   s  t tjttjfkstt tjttfks.tt tt	 jttfksHtt t	t jt
t
fksbtt t tksvtt t t tksttt t tt stt t t	t j t t	t kstt  tkstt t ttjksttt ttkstdtt  ttd ks0ttt  tjtj ksNtttt	  t sftt tt jddt tt kstt td tdkstt tdjddtdksttddjtdkstttttjt std S )N   F)Z
inv_expand)deep   )r   r   argsr   ZNegativeOneAssertionErrorshapenr   r   minversedoit
isinstancer   rowsr   Ir   r    r#   r#   _/var/www/html/venv/lib/python3.8/site-packages/sympy/matrices/expressions/tests/test_inverse.pytest_inverse   s&    ""&"r%   c                   C   s    t tdd  t tdd  d S )Nc                   S   s   t ttjS N)r   r   r"   r#   r#   r#   r$   <lambda>0       z-test_inverse_non_invertible.<locals>.<lambda>c                   S   s   t ddjS )N   )r   r"   r#   r#   r#   r$   r'   1   r(   )r   r	   r#   r#   r#   r$   test_inverse_non_invertible/   s    r*   c                   C   s    t tjtttjkstd S r&   )r   r   r"   r   Z
orthogonalTr   r#   r#   r#   r$   test_refine3   s    r,   c                  C   s8   t ddd} tt| d tt| d ks4td S )Nr   r   )r   r   r   r   r   r   r#   r#   r$   $test_inverse_matpow_canonicalization7   s    r.   c                      s"   t ddd tt fdd d S )Nr   r      c                      s   t  S r&   )r   r#   r-   r#   r$   r'   >   r(   z&test_nonsquare_error.<locals>.<lambda>)r   r   r
   r#   r#   r-   r$   test_nonsquare_error<   s    r0   c                  C   sd   t dtt} |   |   ks(t|   |   ksDt|   |   ks`td S )Nr   )r   r   Z	transposer   r   	conjugateZadjointr-   r#   r#   r$    test_adjoint_trnaspose_conjugateA   s    r2   N)#Z
sympy.corer   r   Zsympy.matrices.expressionsr   r   r   r   r   Zsympy.matrices.exceptionsr	   r
   Zsympy.matricesr   r   Zsympy.testing.pytestr   Zsympy.assumptions.askr   Zsympy.assumptions.refiner   r   r   lr   r   r   r   r   r%   r*   r,   r.   r0   r2   r#   r#   r#   r$   <module>   s$   