U
    ZÊ¹j  ã                   @   sä   d dl 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 d dl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S )é    )ÚSÚsymbols)ÚeyeÚonesÚMatrixÚ
ShapeError)
ÚIdentityÚ
MatrixExprÚMatrixSymbolÚDeterminantÚdetÚperÚ
ZeroMatrixÚ	TransposeÚ	PermanentÚMatMul)Ú	OneMatrix)Úraises)ÚQ)ÚrefineÚnT)ÚintegerÚAÚBÚCé   é   c                  C   s    t ttƒtƒst‚t ttƒtƒr$t‚ttdd„ ƒ ttdƒƒdksFt‚tt	dddddddddddg	ƒƒdkspt‚tttƒ } tt
d	d„ ƒ ttƒjtksœt‚d S )
Nc                   S   s   t tƒS ©N)r   r   © r   r   úp/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/matrices/expressions/tests/test_determinant.pyÚ<lambda>   ó    ztest_det.<locals>.<lambda>r   é   é   r   é   é   c                   S   s
   t tjƒS r   )r   r   ÚOner   r   r   r   r       r!   )Ú
isinstancer   r   ÚAssertionErrorr	   r   r   r   r   r   Ú	TypeErrorÚarg©Ú_r   r   r   Útest_det   s    *r-   c                   C   s¸   t ttƒƒdkst‚t tttƒƒdks*t‚t tttƒƒttttƒƒksJt‚t tddƒƒdks`t‚t tddƒƒdksvt‚t ttƒƒt tƒksŽt‚tt	t
dƒt
dƒƒƒjdd�dks´t‚d S )Nr"   r   r#   T)Údeep)r   r   r   r(   r   r   r   r   r   r   r   Údoitr   r   r   r   Útest_eval_determinant    s     r0   c                   C   sx   t ttƒt t¡ƒdkst‚t ttƒt t¡ƒdks8t‚t ttƒt t¡ƒdksTt‚t ttƒt t¡ƒttƒkstt‚d S )Nr"   r   )	r   r   r   r   Z
orthogonalr(   ZsingularZunit_triangularÚnormalr   r   r   r   Útest_refine*   s    r2   c                  C   s<   t tƒ} t tƒ}| jst‚|js$t‚| | ||  ks8t‚d S r   )r   r   r   Zis_commutativer(   )Zdet_aZdet_br   r   r   Útest_commutative1   s
    

r3   c                  C   sª   t ttƒtƒst‚t ttƒtƒr$t‚t ttƒtƒs6t‚ttddƒƒ ¡ dksPt‚tttƒ } tt	dddddddddddg	ƒƒdks†t‚t
tdd	„ ƒ ttƒjtks¦t‚d S )
Nr   é   r"   r#   r   r$   ég   c                   S   s
   t tjƒS r   )r   r   r&   r   r   r   r   r    @   r!   z test_permanent.<locals>.<lambda>)r'   r   r   r(   r	   r   r   r/   r   r   r   r)   r*   r+   r   r   r   Útest_permanent9   s    *r6   N)$Z
sympy.corer   r   Zsympy.matricesr   r   r   r   Zsympy.matrices.expressionsr   r	   r
   r   r   r   r   r   r   r   Z"sympy.matrices.expressions.specialr   Zsympy.testing.pytestr   Zsympy.assumptions.askr   Zsympy.assumptions.refiner   r   r   r   r   r-   r0   r2   r3   r6   r   r   r   r   Ú<module>   s   0
