
    g                     R   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&dS )    )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n J t           d         t          d         cxk    rdk    sn J t           d         t          d         cxk    rdk    sn J d S )N)r   r   )r   r   r   r   r   r   )IMshapeISM     _/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/matrices/tests/test_immutable.pytest_creationr%      s    8sy****F******d8s4y%%%%A%%%%%%d8s4y%%%%A%%%%%%%%r#   c                      t          t                    5  dt          d<   d d d            n# 1 swxY w Y   t          t                    5  dt          d<   d d d            d S # 1 swxY w Y   d S )Nr   r   )r   	TypeErrorr   r!   r"   r#   r$   test_immutabilityr(      s    				  4              				  D	                 s   ,00A##A'*A'c                  R   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 d S )Nr   r   r   r   r   )r   r   r!   r   r"   r#   r$   test_slicingr*   !   s    ad8+YYYK888888bqb"1"f:-1v1v.>??????q!!!t9-yyyk::::::rr2A2v;/!Q!Q0@AAAAAAAAr#   c                     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          }|                    t          d          | k    sJ t          |z                      t          d          d| z  k    sJ t          t	          d          z  |z                       t          d          dt	          d          z  | z   k    sJ |                    t          dgt          dgg          | k    sJ |                    t          dft          dfg          | k    sJ |                    t          dt          di          | k    s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 d S )	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66A66!Q<<1aC::aqs""""c!ffHqLq!$$#a&&1444466Ar7QG$%%****66Ar7QG$%%****661b!R.!!Q&&&&661a!eQA&T6::!a%!a%!a%1AEAIAz3JKLLM M M M M Mr#   c                  \   ddgddgg} t          |           }t          |          |                                cxk    rt          |           k    sn J ddddd} t	          dd|           }t          |          |                                cxk    rt          dd|           k    sn J d S )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BBB_T-B-BBBBBBBq!Q77DQ4  A1::))NNNN-B1a-N-NNNNNNNNNr#   c                     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    sJ t          |                     |                    t           k    sJ t          ddgddgg          } | j        | k    sJ | j        sJ t          |                                           t           k    sJ |                                 \  }}t          |          t          |          ft           t           fk    sJ 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    sJ t          t          dd                                                                          d                   t           k    sJ t          ddgddgg          } t          |                     |                    t           k    sJ t          | j                            |                    t           k    sJ t          |                     dd                    t           k    sJ d S )	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   @   s    	!Q!Q())A!qc
##ADAqGGT!WW/?!CCCCC		!0000		!0000!Q!Q())A3!8888>

0000DAqGGT!WW/?!CCCCC!Q!Q())A     5577b====66!99>>>>q!!$Q'((O;;;;a((**4466q9::oMMMM!Q!Q())A((++,,????**1--../A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 d S )Nr   r   r   )r   r
   range
isinstance)r7   r0   s     r$   test_immutable_evaluationrT   f   s    AA1eAhh''Aa!e_-----a!e_-----a!e_-----a!e_-----adO,,,,,,,r#   c                  Z    t          ddd                                           dk    sJ d S )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   s5    1a!3!34488::a??????r#   c                  d   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 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          | |                     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 sJ t	          | |                     t          d                                        t          d          t          j        u sJ d S )Nr   r   r   )
r   r   r   truer   falser/   r   r   r   )Ms    r$   test_Equalityr_   t   s   Bqv%%%%b"((((B1&&!'1111b"''!Q--((AF2222B??ag%%%%b!&&&&AAAr??ag%%%%a&&&&Aqvva||$$))!Q//169999a1&&++Aq11QW<<<<Aqvva||$$))!Q//17::::a1&&++Aq11QV;;;;;;r#   c            	           t          t          t                      j        t          j        k    sJ t	           fdt          t          d          t          d                    D                       sJ d S )Nc              3   \   K   | ]&\  }}||f         d |z   d|z  z   t           z  k    V  'dS )r   r   N)r   ).0rW   rX   intIMs      r$   	<genexpr>z!test_integrate.<locals>.<genexpr>   sT       - -$!QuQT{q1uqs{Ao- - - - - - -r#   r   )r   r   r   r    allr   rR   )rc   s   @r$   test_integraterf      s    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 8 8 8 8 8 8 8 " " " " " " & & & & & & / / / / / / 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 ' ' ' ' ' '0 0 0 0 0 0 0 0         ' ' ' ' ' '999iii;<<YYY			999=>>CCFF##& & &  B B BM M MO O O< < <L- - -@ @ @< < < - - - - -r#   