a
    kh                     @   s,  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g dg dg dgZeg dg dg d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)                  )      	   r   c                   C   sf   t jtj  krdksn J t d td   kr:dks@n J t d td   kr\dksbn J d S )N)r   r   )r   r   r   r   r   r   )IMshapeISM r    r    Q/var/www/auris/lib/python3.9/site-packages/sympy/matrices/tests/test_immutable.pytest_creation   s    "r"   c                   C   sd   t t dtd< W d    n1 s&0    Y  t t dtd< W d    n1 sV0    Y  d S )Nr   r   )r   	TypeErrorr   r   r    r    r    r!   test_immutability   s    
&
r$   c                   C   s   t dd d f tg dgks"J t d dd df tddgddggksNJ tdd d f tg dgkspJ td dd df tddgddggksJ d S )Nr   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`J t| tdd|  ks|J ttd | tddtd |  ksJ |tdgtdgg| ksJ |tdftdfg| ksJ |tdtdi| ksJ |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sVJ d S )	Nr   r   r   r   T)Zsimultaneous)r   r   r   subsr	   )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 J ddddd} tdd| }t||   kr|tdd| ksn J d S )Nr   r   r   r   ))r   r   )r   r   )r   r   )r   r   )r   r   as_immutabler   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sLJ t| |t ksbJ t| |t ksxJ t ddgddgg} | j| ksJ | jsJ t|  t ksJ |  \}}t|t|ft t fksJ t ddgddgg} | 	 sJ | 
 dksJ | ddks(J t|  d d d t ksJJ ttdd  d t ksnJ t ddgddgg} t| |t ksJ t| j|t ksJ t| ddt ksJ d S )	Nr   r   r   r   r   r   r   )r   ZQRdecompositiontypeZ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.J t| | t s@J t| d t sRJ td|  t sdJ t|d t svJ d S )Nr   r   r   )r   r	   range
isinstance)r/   r)   r    r    r!   test_immutable_evaluationf   s    r=   c                   C   s    t dddd  dksJ 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!   test_deterimantp   s    rB   c                  C   sV  t tttju sJ ttttju s(J t ttddtju sDJ tttddtju s`J t tdtju stJ ttdtju sJ ttt	g} t | ttju sJ t| ttju sJ t | | tdtdtju sJ t| | tdtdtju sJ t | | tdtdtju s,J t| | tdtdtju sRJ d S )Nr   r   r   )
r   r   r   truer   falser(   r   r   r   )Mr    r    r!   test_Equalityt   s    $&&rF   c                      sF   t tt  jtjksJ t fddttdtdD sBJ d S )Nc                 3   s2   | ]*\}} ||f d | d|  t  kV  qdS )r   r   N)r   ).0r>   r?   ZintIMr    r!   	<genexpr>   rA   z!test_integrate.<locals>.<genexpr>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.   
&
