U
    -e
                     @   s8  d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZmZ d dlmZ edddgdddgdddggZedddgdddgdddggZee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 )*    )product)Equality
Unequality)S)sympify)	integrate)Matrixeyezeros)ImmutableMatrix)SparseMatrix)ImmutableDenseMatrixImmutableSparseMatrix)xy)raises                        	   c                   C   sf   t jtj  krdksn tt d td   kr:dks@n tt d td   kr\dksbn td S )N)r   r   )r   r   r   r   r   r   )IMshapeISMAssertionError r    r    d/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/matrices/tests/test_immutable.pytest_creation   s    "r"   c                	   C   s<   t t dtd< W 5 Q R X t t dtd< W 5 Q R X d S )Nr   r   )r   	TypeErrorr   r   r    r    r    r!   test_immutability   s    

r$   c                   C   s   t dd d f tdddggks$tt d dd df tddgddggksPttdd d f tdddggkstttd dd df tddgddggkstd S )Nr   r   r   r   r   )r   r   r   r   r   r    r    r    r!   test_slicing!   s    $,$r%   c                  C   sZ  t ddgddgg} t ddgtdgg}t t tt gtt  td gg}|td| ks`tt| tdd|  ks|tttd | tddtd |  kst|tdgtdgg| kst|tdftdfg| kst|tdtdi| kst|jttd ttd iddt dt td td  gdt t td d ggksVtd S )	Nr   r   r   r   T)Zsimultaneous)r   r   r   subsr   r	   )ABCr    r    r!   	test_subs(   s    $,2r,   c                  C   s   ddgddgg} t | }t||   kr8t| ks>n tddddd} tdd| }t||   kr|tdd| ksn td S )Nr   r   r   r   ))r   r   )r   r   )r   r   )r   r   )r   r   as_immutabler   r   r   r   )dataXr    r    r!   test_as_immutable6   s    &r0   c                  C   s  t ddgddgg} t dgdgg}|  \}}t|t|ft t fksLtt| |t ksbtt| |t ksxtt ddgddgg} | j| kst| jstt|  t kst| 	 \}}t|t|ft t fkstt ddgddgg} | 
 st|  dkst| ddks(tt|  d d d t ksJtttdd  d t ksntt ddgddgg} t| |t kstt| j|t kstt| ddt kstd S )	Nr   r   r   r   r   r   r   )r   ZQRdecompositiontyper   ZLUsolveZQRsolveTZis_symmetricZcholeskyZLDLdecompositionZis_diagonalizabledetZnormZ
eigenvectsr
   r-   Z	nullspaceZlower_triangular_solveZupper_triangular_solveZminor_submatrix)r/   YqrLDr    r    r!   test_function_return_types@   s,    
"$r:   c                  C   sz   t td} t ddtd}t| | t s.tt| | t s@tt| d t sRttd|  t sdtt|d t svtd S )Nr   r   r   )r   r	   range
isinstancer   )r/   r)   r    r    r!   test_immutable_evaluationf   s    r=   c                   C   s    t dddd  dkstd S )Nr   c                 S   s   | | S )Nr    )ijr    r    r!   <lambda>q       z!test_deterimant.<locals>.<lambda>r   )r   r4   r   r    r    r    r!   test_deterimantp   s    rB   c                  C   sV  t tttjkstttttjks(tt ttddtjksDttttddtjks`tt tdtjksttttdtjksttt	t
g} t | ttjkstt| ttjkstt | | t	dt	dtjkstt| | t	dt	dtjkstt | | t	dt	dtjks,tt| | t	dt	dtjksRtd S )Nr   r   r   )r   r   r   truer   r   falser(   r   r   r   )Mr    r    r!   test_Equalityt   s    $&&rF   c                      sF   t tt  jtjkstt fddttdtdD sBtd S )Nc                    s0   g | ](\}} ||f d | d|  t  kqS )r   r   )r   ).0r>   r?   ZintIMr    r!   
<listcomp>   s     z"test_integrate.<locals>.<listcomp>r   )r   r   r   r   r   allr   r;   r    r    rH   r!   test_integrate   s
    
rK   N)'	itertoolsr   Zsympy.core.relationalr   r   Zsympy.core.singletonr   Zsympy.core.sympifyr   Zsympy.integrals.integralsr   Zsympy.matrices.denser   r	   r
   Zsympy.matrices.immutabler   Zsympy.matricesr   r   r   Z	sympy.abcr   r   Zsympy.testing.pytestr   r   r   Zieyer"   r$   r%   r,   r0   r:   r=   rB   rF   rK   r    r    r    r!   <module>   s.     
&
