o
    GZh                     @   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   sl   t jtj  krdksJ  J t d td   krdks"J  J t d td   kr1dks4J  J d S )N)r   r   )r   r   r   r   r   r   )IMshapeISM r    r    R/var/www/auris/lib/python3.10/site-packages/sympy/matrices/tests/test_immutable.pytest_creation   s    $(r"   c                   C   sf   t t dtd< W d    n1 sw   Y  t t dtd< W d    d S 1 s,w   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s'J tdd d f tg dgks8J td dd df tddgddggksNJ d S )Nr   r   r   r   r   )r   r   r   r   r    r    r    r!   test_slicing!   s   ","0r%   c                  C   sX  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s0J t| tdd|  ks>J ttd | tddtd |  ksTJ |tdgtdgg| kscJ |tdftdfg| ksrJ |tdtdi| ksJ |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sJ d S )	Nr   r   r   r   T)Zsimultaneous)r   r   r   subsr	   )ABCr    r    r!   	test_subs(   s   $,2r,   c                  C   s   ddgddgg} t | }t||   krt| ks J  J ddddd} tdd| }t||   kr@tdd| ksCJ  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   (0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s&J t| |t ks1J t| |t ks<J t ddgddgg} | j| ksMJ | jsRJ t|  t ks\J |  \}}t|t|ft t fkspJ t ddgddgg} | 	 sJ | 
 dksJ | ddksJ t|  d d d t ksJ ttdd  d t ksJ 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 s)J td|  t s2J t|d t s;J 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   s    z!test_deterimant.<locals>.<lambda>r   )r   r4   r    r    r    r!   test_deterimantp   s    rA   c                  C   sP  t tttju s
J ttttju sJ t ttddtju s"J tttddtju s0J t tdtju s:J ttdtju sDJ ttt	g} t | ttju sTJ t| ttju s^J t | | tdtdtju spJ t| | tdtdtju sJ t | | tdtdtju sJ t| | tdtdtju sJ d S )Nr   r   r   )
r   r   r   truer   falser(   r   r   r   )Mr    r    r!   test_Equalityt   s   $$$(rE   c                      sF   t tt  jtjksJ t fddttdtdD s!J d S )Nc                 3   s4    | ]\}} ||f d | d|  t  kV  qdS )r   r   N)r   ).0r>   r?   ZintIMr    r!   	<genexpr>   s   2 z!test_integrate.<locals>.<genexpr>r   )r   r   r   r   allr   r;   r    r    rG   r!   test_integrate   s
   
rJ   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=   rA   rE   rJ   r    r    r    r!   <module>   s0    
&
