
    sg                     8   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 Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&y)    )product)Equality
Unequality)S)sympify)	integrate)Matrixeyezeros)ImmutableMatrix)SparseMatrix)ImmutableDenseMatrixImmutableSparseMatrix)xy)raises)                  )      	   r   c                      t         j                  t        j                  cxk(  rdk(  sJ  J t         d   t        d   cxk(  rdk(  sJ  J t         d   t        d   cxk(  rdk(  sJ  J y )N)r   r   )r   r   r   r   r   r   )IMshapeISM     V/var/www/html/venv/lib/python3.12/site-packages/sympy/matrices/tests/test_immutable.pytest_creationr%      se    88syy*F*****d8s4y%A%%%%%d8s4y%A%%%%%r#   c                      t        t              5  dt        d<   d d d        t        t              5  dt        d<   d d d        y # 1 sw Y   +xY w# 1 sw Y   y xY w)Nr   r   )r   	TypeErrorr   r!   r"   r#   r$   test_immutabilityr(      sS    			 4			 D	   s   
A
AAAc                     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(  sJ t        d dd df   t        ddgddgg      k(  sJ y )Nr   r   r   r   r   )r   r   r!   r   r"   r#   r$   test_slicingr*   !   s    ad8+YK8888bqb"1"f:-1v1v.>????q!t9-yk::::rr2A2v;/!Q!Q0@AAAAr#   c                  h   t        ddgddgg      } t        ddgt        dgg      }t        t         t        t        z  gt        t        z    t        dz  gg      }|j                  t        d      | k(  sJ t        |z  j                  t        d      d| z  k(  sJ t        t	        d      z  |z   j                  t        d      dt	        d      z  | z   k(  sJ |j                  t        dgt        dgg      | k(  sJ |j                  t        dft        dfg      | k(  sJ |j                  t        dt        di      | k(  sJ |j                  t        t        dz
  t        t        dz
  id      t        dt        z
  t        dz
  t        dz
  z  gdt        z
  t        z
  t        dz
  dz  gg      k(  sJ y )	Nr   r   r   r   T)simultaneous)r   r   r   subsr
   )ABCs      r$   	test_subsr3   (   s   !Q!Q()A!Q!Q()A1"acq1uXq!t$456A66!Q<1aC::aqs"""c!fHqLq!$#a&144466Ar7QG$%***66Ar7QG$%***661b!R.!Q&&&661a!eQA&T6:!a%!a%!a%1AEAIAz3JKLM M Mr#   c                     ddgddgg} t        |       }t        |      |j                         cxk(  rt        |       k(  sJ  J ddddd} t	        dd|       }t        |      |j                         cxk(  rt        dd|       k(  sJ  J y )Nr   r   r   r   ))r   r   )r   r   )r   r   )r   r   )r	   r   as_immutabler   r   r   )dataXs     r$   test_as_immutabler8   6   s    FQFDtA1:)B_T-BBBBBBq!Q7DQ4 A1:)N-B1a-NNNNNNr#   c                     t        ddgddgg      } t        dgdgg      }| j                         \  }}t        |      t        |      ft         t         fk(  sJ t        | j                  |            t         k(  sJ t        | j	                  |            t         k(  sJ t        ddgddgg      } | j
                  | k(  sJ | j                  sJ t        | j                               t         k(  sJ | j                         \  }}t        |      t        |      ft         t         fk(  sJ t        ddgddgg      } | j                         sJ | j                         dk(  sJ | j                  d      dk(  sJ t        | j                         d   d   d         t         k(  sJ t        t        dd      j                         j                         d         t         k(  sJ t        ddgddgg      } t        | j!                  |            t         k(  sJ t        | j
                  j#                  |            t         k(  sJ t        | j%                  dd            t         k(  sJ y )	Nr   r   r   r   r   r   r   )r   QRdecompositiontypeLUsolveQRsolveTis_symmetriccholeskyLDLdecompositionis_diagonalizabledetnorm
eigenvectsr   r5   	nullspacelower_triangular_solveupper_triangular_solveminor_submatrix)r7   YqrLDs         r$   test_function_return_typesrP   @   s0    	!Q!Q()A!qc
#ADAqGT!W/?!CCCC		!000		!000!Q!Q()A33!8O8>>>

000DAqGT!W/?!CCCC!Q!Q()A   557b==66!9>>q!!$Q'(O;;;a((*446q9:oMMM!Q!Q()A((+,???**1-./AAA!!!Q'(O;;;r#   c                  *   t        t        d            } t        ddt        d            }t        | |z   t               sJ t        | |z  t               sJ t        | dz  t               sJ t        d| z  t               sJ t        |dz  t               sJ y )Nr   r   r   )r   r
   range
isinstance)r7   r0   s     r$   test_immutable_evaluationrT   f   s    AA1eAh'Aa!e_---a!e_---a!e_---a!e_---adO,,,r#   c                  F    t        ddd       j                         dk(  sJ y )Nr   c                     | |z   S )Nr"   )ijs     r$   <lambda>z!test_deterimant.<locals>.<lambda>q   s
    a!e r#   r   )r   rD   r"   r#   r$   test_deterimantrZ   p   s#    1a!3488:a???r#   c                     t        t        t              t        j                  u sJ t	        t        t              t        j
                  u sJ t        t        t        j                  dd            t        j
                  u sJ t	        t        t        j                  dd            t        j                  u sJ t        t        d      t        j
                  u sJ t	        t        d      t        j                  u sJ t        t        t        g      } t        | t              t        j
                  u sJ t	        | t              t        j                  u sJ t        | | j                  t        d            j                  t        d      t        j                  u sJ t	        | | j                  t        d            j                  t        d      t        j
                  u sJ t        | | j                  t        d            j                  t        d      t        j
                  u sJ t	        | | j                  t        d            j                  t        d      t        j                  u sJ y )Nr   r   r   )
r   r   r   truer   falser/   r   r   r   )Ms    r$   test_Equalityr_   t   s   Bqvv%%%b"(((B1&!''111b"''!Q-(AFF222B?agg%%%b!&&&AAAr?agg%%%a&&&Aqvva|$))!Q/166999a1&++Aq1QWW<<<Aqvva|$))!Q/177:::a1&++Aq1QVV;;;r#   c            	           t        t        t                j                  t        j                  k(  sJ t	         fdt        t        d      t        d            D              sJ y )Nc              3   X   K   | ]!  \  }}||f   d |z   d|z  z   t         z  k(   # yw)r   r   N)r   ).0rW   rX   intIMs      r$   	<genexpr>z!test_integrate.<locals>.<genexpr>   s6      -$!QuQT{q1uqs{Ao- -s   '*r   )r   r   r   r    allr   rR   )rc   s   @r$   test_integraterf      sS    b!E;;"((""" -a%(+- - - -r#   N)'	itertoolsr   sympy.core.relationalr   r   sympy.core.singletonr   sympy.core.sympifyr   sympy.integrals.integralsr   sympy.matrices.denser	   r
   r   sympy.matrices.immutabler   sympy.matricesr   r   r   	sympy.abcr   r   sympy.testing.pytestr   r   r!   ieyer%   r(   r*   r3   r8   rP   rT   rZ   r_   rf   r"   r#   r$   <module>rr      s     8 " & / 5 5 4 '0  '9i;<Y	9=>CF#&BMO<L-@< -r#   