
    sg	H                        d dl mZ d dlmZ d dlmZ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 d d	lmZmZmZmZmZmZmZ d d
lmZmZmZmZm Z m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5 d dl6m7Z7 d dl8m9Z9m:Z: d dl;m<Z<m=Z=m>Z> d dl?m@Z@  edd      \  ZAZBZCZDZE ed      ZF e,deAeB      ZG e,deBeC      ZH e,deAeA      ZI e,deAeA      ZJ e,deBeA      ZK e,deAd      ZLd ZMd ZNd  ZOd! ZPd" ZQd# ZRd$ ZSd% ZTd& ZUd' ZVd( ZWd) ZXd* ZYd+ ZZd, Z[d- Z\d. Z]d/ Z^d0 Z_d1 Z`d2 Zad3 Zbd4 Zcd5 Zdd6 Zee=d7        Zfd8 Zgd9 Zhd: Zid; Zjd< Zkd= Zld> Zme=d?        Znd@ ZodA ZpdB ZqdC ZrdD ZsdE ZtdF ZudG ZvyH)I    )Sum)	gcd_terms)diffexpand)Eq)DummySymbolStr)KroneckerDelta)zeros)factor)SsymbolsAddMulSympifyErrorRationalFunction)sincostansqrtcbrtexp)simplify)ImmutableMatrixInverseMatAddMatMulMatPowMatrix
MatrixExprMatrixSymbolSparseMatrix	TransposeAdjoint	MatrixSet)NonSquareMatrixError)Determinantdet)MatrixElement)
ZeroMatrixIdentity)raisesXFAILskip)versionz	n m l k pTintegerxABCDEw   c                      t        ddd      sJ t        ddd      sJ t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d	        t        d
       t        d        sJ t        d
d       t        t         fd       t        d
d       t        t         fd       y )Nr5      r   c                      t        ddd      S )Nr5   r=   r#        `/var/www/html/venv/lib/python3.12/site-packages/sympy/matrices/expressions/tests/test_matexpr.py<lambda>z-test_matrix_symbol_creation.<locals>.<lambda>%       |CQ7 rB   c                      t        ddd      S )Nr5          @r=   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>&   s    |Ca8 rB   c                      t        ddd      S )Nr5                  @r=   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>'   rE   rB   c                      t        ddd      S )Nr5   r=   r?   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>(       |CB7 rB   c                      t        ddd      S )Nr5   r=   rG   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>)   s    |CC8 rB   c                      t        ddd      S )Nr5   r=   rI   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>*   rK   rB   nFr2   c                      t        d        S Nr5   r@   rN   s   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>/       |CA6 rB   T)negativec                      t        d        S rP   r@   rQ   s   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>1   rR   rB   )r#   r.   
ValueErrorr   rQ   s   @rC   test_matrix_symbol_creationrV   "   s    Q"""Q"""
:78
:89
:78
:78
:89
:78AQ"""U#A
:67d#A
:67rB   c                  :   t         j                  t        t        fk(  sJ t         t        z  j                  t        t
        fk(  sJ t         d   j                  dk(  sJ t         d   j                  t         k(  sJ t         d   j                  j                  dk(  sJ y )Nr   r;   r   r   r5   )	r5   shaperN   mr6   lindicessymbolnamerA   rB   rC   test_matexpr_propertiesr`   4   sz    77q!fE==QF"""T7??f$$$T7>>QT7>>#%%%rB   c                  D   t         t        z  j                  t        j                  k(  sJ t         t        z  j                  t        k(  sJ dt        z  t        z
  t        z
  t        t        j                   k(  sJ t        t        z  j                  t        t        fk(  sJ y Nr=   )	r4   r5   rZ   	__class__r   r,   r6   rN   r\   rA   rB   rC   test_matexprrd   <   so    aC;;!''!!!aC??f$$$Q37Q;*agg....aC;;1a&   rB   c                  t   t        dt        t              } t        dt        t              }t        dt        t              }| j	                  t        t              j
                  t        t        fk(  sJ | |z  j	                  ||      | |z  k(  sJ | |z  j	                  t        t              j                  sJ t        ddd      t        ddd      t        dd	d      t        d
t        d      j	                        k(  sJ t        d      }j	                  t        d      |      j                  |ddfk(  sJ d   j	                        d   k(  sJ t        t        fd       d   j	                        d   k(  sJ d   j	                        d   k(  sJ t        t        fd       t        t        fd       t        d	dgddgg      } t        d	dgddgg      }t        ddd      t        ddd      }}||z  j	                  || ||i      t        | |      k(  sJ y )Nr5   r6   r7   W   Xr=   Yr;   Zyr;   r;   c                  .     d   j                         S )Nrl   subs)rh   ri   s   rC   rD   z#test_matexpr_subs.<locals>.<lambda>[       qw||Aq1 rB   rX   r=   r;   c                  .     d   j                         S )Nr=   r=   rn   )rf   rj   s   rC   rD   z#test_matexpr_subs.<locals>.<lambda>b   rp   rB   c                  @     d   j                   t        d            S )Nrs   r=   )ro   r   )rf   s   rC   rD   z#test_matexpr_subs.<locals>.<lambda>d   s    qw||AuQx8 rB      r8   )r#   rN   r[   r\   ro   rZ   	is_squarer
   argsr.   
IndexErrorr$   r!   r   )	r5   r6   r7   rk   r8   rf   rh   ri   rj   s	        @@@@rC   test_matexpr_subsry   C   s
   S!QAS!QAS!QA66!Q<!Q'''aC::aqs"""aC::a%%%%S!QAS!QAS!QAS!QA66!Q<1CA66#c(A##1ay000T7<<14(((
 :12T7<<14((( T7<<14(((
:12
:89q!fq!f%&AAA AQ"La$;qAaC::q!Ql#va|333rB   c                     t        dt        t              t        dt        t              } t        | z   t              sJ | z   j
                  j
                  k(  sJ t        z
  d| z  z   t              sJ t        t        fd       t        t        fd       t        t        fd       t        t        t              z   z
  t        t        t              k(  sJ t        t        d        y )Nr5   r6   r=   c                       dz   S Nr;   rA   r5   s   rC   rD   ztest_addition.<locals>.<lambda>u       a!e rB   c                      d z   S N   rA   r}   s   rC   rD   ztest_addition.<locals>.<lambda>v   r~   rB   c                      d z
  S r   rA   r}   s   rC   rD   ztest_addition.<locals>.<lambda>w   r~   rB   c                  L    t        t        t              t        j                  z   S N)r,   rN   r[   r   ZerorA   rB   rC   rD   ztest_addition.<locals>.<lambda>z   s    jA.7 rB   )
r#   rN   r[   
isinstancer   rZ   r   r.   	TypeErrorr,   )r6   r5   s    @rC   test_additionr   m   s    S!QAS!QAa!eV$$$E==AGG###a!eack6***
9m$
9m$
9m$z!Q!#z!Q'7777
978rB   c                     t        dt        t              } t        dt        t              t        dt        t              }d| z  z  j                  t        t        fk(  sJ | dz  z  t        t        t              k(  sJ d| z  j                  | j                  k(  sJ | t        t        t              z  z  t        t        t              k(  sJ |t        t              z  |j                  z  t        t              k(  sJ dz  t        j                  z  k(  sJ t        t        fd       t        dt        t              } t        dt        t              t        t              | z   z  | z   k(  sJ | dz  | z  | dz  k(  sJ | dz  | j                  dz  z  | j                  k(  sJ | dz  | j                  dz  z  | k(  sJ y )Nr5   r6   r7   r=   r   c                      d z  S rb   rA   r6   s   rC   rD   z%test_multiplication.<locals>.<lambda>   s    ! rB   rg   )r#   rN   r[   r\   rZ   r,   r-   Ir   Halfr.   NotImplementedError)r5   r7   r6   s     @rC   test_multiplicationr   }   s   S!QAS!QAS!QAaCE==QF"""aCEjA&&&&aC;;!''!!!z!Q!#z!Q'7777x{?QSS HQK///Q3!&&(??
,S!QAS!QAA;!a% AE)))a46QT>>a4q=ACCa4q=ArB   c                     t        dt        t              } t        | d      }|j                  dk(  sJ |j                  | k(  sJ | t        z  j                  t        k(  sJ | dz  t        t              k(  sJ | dz  | k(  sJ | dz  |k(  sJ | dz  t        |       k(  sJ | dz  dz  | k(  sJ | dz  dz  | dz  k(  sJ | t        j                  z  t        |       k(  sJ | t        dd      z  t        |       k(  sJ t        t        d        y )	Nr5   r=   r   r;   r?   rg      c                  "    t        ddd      dz  S )Nr6   rg   r=   r@   rA   rB   rC   rD   ztest_MatPow.<locals>.<lambda>   s    c1a)@!)C rB   )r#   rN   r    r   baser-   r   r   r   r   r   r   r.   r(   )r5   AAs     rC   test_MatPowr      s   S!QA	1B66Q;;77a<<qD::??a48A;a4199a42::b5GAJrEB;!qD191aff9Qhq!nQ'''
!CDrB   c                      t        d      \  t        d      } | j                  fk(  sJ t        t        fd       | j                         | k(  sJ y )Nzn,m,trh   c                  *     t        d             S )Nrh   r@   )r[   rN   ts   rC   rD   z#test_MatrixSymbol.<locals>.<lambda>   s    5l315a8 rB   )r   r#   rZ   r.   r   doit)rh   r[   rN   r   s    @@@rC   test_MatrixSymbolr      sT    gGAq!S!QA77q!f
989668q==rB   c                       t        ddd       t               t        dd fd      k(  sJ t               t        dd fd      k(  sJ y )Nrh   r=   c                     | |f   S r   rA   ijrh   s     rC   rD   z'test_dense_conversion.<locals>.<lambda>   s    AadG rB   c                     | |f   S r   rA   r   s     rC   rD   z'test_dense_conversion.<locals>.<lambda>   s    !AqD' rB   )r#   r   r!   )rh   s   @rC   test_dense_conversionr      sJ    S!QA1A7K!LLLL!9q!%9::::rB   c                  P    t         t        z  j                  t         t        hk(  sJ y r   )r7   r8   free_symbolsrA   rB   rC   test_free_symbolsr      s    aC!Q'''rB   c                  `    t        t        j                  t        ddd      z  t              sJ y )Nrh   r=   )r   r   r   r#   r"   rA   rB   rC   test_zero_matmulr      s$    aff|CA66
CCCrB   c                      t        ddd      } t        t        | t        t	        t
              dz  t        t
              dz  z   gg                  t        | t        dgg            k(  sJ y Nr5   r;   r=   )r#   r   r   r   r   r4   r   r!   r}   s    rC   test_matadd_simplifyr      `    S!QAF1oA	CFAI0E/F.GHIJq&1#- ! ! !rB   c                      t        ddd      } t        t        | t        t	        t
              dz  t        t
              dz  z   gg                  t        | t        dgg            k(  sJ y r   )r#   r   r   r   r   r4   r   r!   r}   s    rC   test_matmul_simplifyr      r   rB   c                     t        dt        t              } t        dt        t              }t        dt        t              }t	        t              t        t        t              | t        | |      t        | |       t        |       t        |       t        |      t        |d      t        |d      t        |d      g}|D ]   }| |j                  |j                   k(  r J  y )Nr5   r6   rh   r=   r?   r   )r#   rN   r[   r\   r-   r,   r   r   r%   r&   r   r    rc   rw   )r5   r6   rh   objsobjs        rC   test_invariantsr      s    S!QAS!QAS!QAQKAq)1fQlF1aLaL'!*gaj&A,q"1aLD  /mcmmSXX..../rB   c                      t        dt        t              } | d    | t        t        f    | t        dz   t        dz   f    t        ddd      } t        dd      D ]  }t        dd      D ]	  }| ||f      y )Nr5   r;   r=   r;   r=   r?   )r#   rN   r[   r\   krange)r5   r   r   s      rC   test_matexpr_indexingr      sx    S!QAdGadGa!eQUlOS!QA2q\ r1 	AadG	rB   c                      t        ddd        d    d   k(  sJ  t        d          d   k(  sJ  d    d   k(  sJ t         d dd df          d    d    d    d   gk(  sJ t        t         fd	       t        t         fd
       t        dt
        t              t        t        fd       t        dt
        d      d   d   k(  sJ y )Nr5   r=   rg   r;   rX   r;   r   rY   rl   c                       d   S )Nr   rA   r}   s   rC   rD   z&test_single_indexing.<locals>.<lambda>       qt rB   c                       t            S r   rQ   r}   s   rC   rD   z&test_single_indexing.<locals>.<lambda>   s    qt rB   r6   c                       d   S r|   rA   r   s   rC   rD   z&test_single_indexing.<locals>.<lambda>   r   rB   )r#   intlistr.   rx   rN   r[   r5   r6   s   @@rC   test_single_indexingr      s    S!QAQ41T7??SV9$Q41T7??"1"bqb&	?qw$4!D'BBBB
:|$
:|$S!QA
:|$S!QAQ41T7??rB   c                  V    t         d   t         d   z  t         d   t         d   z  k(  sJ y )NrX   r   r}   rA   rB   rC   test_MatrixElement_commutativer      s(    T71T7?agago---rB   c                     t        ddd      } | j                         j                         | d   | d   z  | d   z  | d   z  | d   | d   z  | d   z  | d   z  z
  | d   | d	   z  | d
   z  | d   z  z
  | d   | d	   z  | d   z  | d   z  z   | d   | d   z  | d
   z  | d   z  z   | d   | d   z  | d   z  | d   z  z
  | d   | d   z  | d   z  | d   z  z
  | d   | d   z  | d   z  | d   z  z   | d   | d	   z  | d   z  | d   z  z   | d   | d	   z  | d   z  | d   z  z
  | d   | d   z  | d   z  | d   z  z
  | d   | d   z  | d   z  | d   z  z   | d   | d   z  | d
   z  | d   z  z   | d   | d   z  | d   z  | d   z  z
  | d   | d   z  | d   z  | d   z  z
  | d   | d   z  | d   z  | d   z  z   | d   | d   z  | d   z  | d   z  z   | d   | d   z  | d
   z  | d   z  z
  | d   | d   z  | d
   z  | d   z  z
  | d   | d   z  | d   z  | d   z  z   | d   | d   z  | d   z  | d   z  z   | d   | d   z  | d   z  | d   z  z
  | d   | d	   z  | d   z  | d   z  z
  | d   | d	   z  | d
   z  | d   z  z   k(  sJ t        ddd      }t        | |z         j	                         t        | |z         cxk(  r| |z   j                         k(  sJ  J y )Nr5   ru   rY   rl   rs   )rg   rg   )r=   rg   )rg   r=   r   rq   )rg   r;   )r;   rg   rX   r   )r=   r   rg   r   r   r=   )r   rg   r6   )r#   as_explicitr*   r)   r   r   s     rC   test_MatrixSymbol_determinantr      s9   S!QA==? AdGAdGOAdG$;AdG$C	$$$$'%(*+D'!D'/!D'*A!D'*I%J	$$$$'%(*+D'!D'/!D'*A!D'*I%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'	%( +,D'!D'/!D'*A!D'*I	%J
 	
$$$$'%(
 +,D'!D'/!D'*A!D'*I%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'	%( +,D'!D'/!D'*A!D'*I	%J 	
$$$$'
%( +,D'!D'/!D'*A!D'*I
%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'%( ( ( ( 	S!QAq1u""$AE
Cq1ukkmCCCCCrB   c                  n    t         d   t         d   z  j                  t         d         t         d   k(  sJ y )Nr   rY   )r5   r   rA   rB   rC   test_MatrixElement_diffr     s/    dGAdGO!!!D'*ag555rB   c                      t        ddd      } t        ddg      }| d   j                  | |      j                         |d   k(  sJ y )Nur=   r;   rg   r   rY   )r#   r   ro   r   )r   vs     rC   test_MatrixElement_doitr     sH    S!QAAAT7<<1""$$///rB   c                  F   t        t              } t        | d      j                         | dz  k(  sJ | t        z  | k(  sJ t        | d      j                         | dz  k(  sJ | dz  | k(  sJ t        | d      j                         | dz  k(  sJ t        d      }t        |d      j                         |t        z  k(  sJ t        |d      j                         |k(  sJ t        |d      j                         |dz  k(  sJ t        |d      j                         |dz  k(  sJ y )Nrg   r   r=   r   ru   )r-   rN   r    r   )MNs     rC   test_identity_powersr     s   A!Q<!Q$&&&a4199!Q<!Q$&&&b5A::!R=1a4'''A!Q<!Q$&&&!Q<!###!R=1a4'''!Q<!Q$&&&rB   c                      t        t        t                dz   k(  sJ t        t         fd        dz  t	        t              k(  sJ t         d      j                          dz  k(  sJ t        t         fd       t        dd      t        d      j                         dz  k(  sJ t        t        fd       dz  t        d      j                         k(  sJ dz  t	        d      k(  sJ t        t        fd       y )	Nru   c                       dz  S Nr   rA   z1s   rC   rD   z!test_Zero_power.<locals>.<lambda>"      b"f rB   r   r=   c                  8    t         d      j                         S r   r    r   r   s   rC   rD   z!test_Zero_power.<locals>.<lambda>%      fRn113 rB   rg   c                       dz  S )NrA   z2s   rC   rD   z!test_Zero_power.<locals>.<lambda>(  r   rB   c                  8    t         d      j                         S Nr?   r   r   s   rC   rD   z!test_Zero_power.<locals>.<lambda>+  r   rB   )r,   rN   r.   rU   r-   r    r   )r   r   s   @@rC   test_Zero_powerr     s    	Aq	Bq5B;;
:}%q5HQK"a=2q5(((
:34	Aq	B"a=2q5(((
:}%q5F2qM&&((((q5HQK
:34rB   c                  ~   t        t        t        z  t        df   t        t        df         } t        t        t        f   j                  t        t        t        f         dk(  sJ t        t        t        f   j                  t        d         t        dt        dt        dz
  f      t        dt        d      z  k(  sJ t        d      }| j                  t        t        |t        dt        dz
  f      t        t        |f   z  |dt        dz
  f            sJ | j                         t        t        t        f   k(  sJ y )Nr   r;   rY   _i_1)r   r8   r:   r   pr   rN   r   dummy_eqr   r   )dexprr   s     rC   test_matrixelement_diffr   .  s    !A#qsQqsV$EQT7<<!Q$ A%%%QT7<<$ N1a!QqS$B>RSUVX^C_$____=D>>#nT1q!A#h?!T'
JTSTVWZ[V[L\]^^^::<1QT7"""rB   c                     t        d      \  } }}}t        | |g||gg      t        d      \  }|f   }t        |t              sJ t	        ddgddgg      }||f   }t        |t              sJ dD ]C  \  }}	|j                  |||	i      ||	f   k(  sJ |j                  |||	i      |||	f   k(  rCJ  t        ddd      }
|
d	   j                  |
      | k(  sJ |
|f   j                  |
      |f   k(  sJ |f   j                  |
      |
|f   k(  sJ t        dz  dz
  |f   t              sJ dz  dz
  |f   j                  d
|di      d   k(  sJ t        df   t              sJ df   j                  d      d	   k(  sJ df   j                  d
      d   k(  sJ |f   j                  |       t        d
dgddgg      |f   k(  sJ t        t        fd       t        t        fd       t        t        fd       t        t        fd       y )Nzx y z wzi, jr=   rg   ru   r   )rY   rX   r   rl   r5   rY   r;   r   r   rX   c                       df   S rb   rA   r   r   s   rC   rD   z0test_MatrixElement_with_values.<locals>.<lambda>Q      qAw rB   c                       df   S r   rA   r   s   rC   rD   z0test_MatrixElement_with_values.<locals>.<lambda>R  s    qBx rB   c                       df   S rb   rA   r   s   rC   rD   z0test_MatrixElement_with_values.<locals>.<lambda>S  r   rB   c                       df   S r   rA   r   s   rC   rD   z0test_MatrixElement_with_values.<locals>.<lambda>T  s    qQx rB   )
r   r!   r   r+   r$   ro   r#   r   r.   rU   )r4   rk   zr:   r   MijMsmsijoiojr5   r   r   s              @@rC   test_MatrixElement_with_valuesr   8  s   #JAq!QAA A6?DAq
AqD'Cc=)))	1v1v&	'Bad8DdM***2 7BxxB2'1RV9444yy!RB(Br2vJ6667 	S!QAT7<<1"""QT7<<11a4(((QT7<<11a4(((a!a
m]333QqS1WaZ=q!Ql+qw666a1g}---QT7<<14(((QT7<<14(((QT7<<?fq!fq!f%56q!t<<<<
:'
:'(
:'
:'(rB   c                     t        ddd      } | j                         | dz  k(  sJ t        ddd      j                         }|j                         t        d|d   z  gg      k(  sJ t        ddd      j                         }|d   |d   z  |d	   |d
   z  z
  }t        |d   |d	    g|d
    |d   gg      |z  }|j                         |k(  sJ y )Nr6   rg   r?   rh   r;   rY   r=   rl   rX   r   )r#   invr   r!   )r6   rh   detXinvXs       rC   test_invr   W  s    S!QA557ae 	S!Q++-A557fq4yk]++++S!Q++-AT71T7?QtWQtW_,DQtWqwh'tWHqw') *,01D557d??rB   c                     t        dt        t              } t        dt        t              }| |z   t        t        z   z  }| t        z  |t        z  z   | t        z  z   |t        z  z   }||k7  sJ t	        |      |k(  sJ t        |      |k(  sJ |dz  | dz  |dz  z  | dz  t        z  |dz  z  z
  dz  z  | dz  z  }t        t              }t        |      |t        z
  |dz  | dz  |t        z
  z  |dz  z  dz  z  | dz  z  fv sJ y )Nr5   r6   r?   )r#   rN   r7   r8   r   r   r-   )r5   r6   expr1expr2exprr   s         rC   test_factor_expandr   f  s   S!QAS!QAUQUOEaC!A#I!Oac!EE>>%=E!!!%=E!!!r7AGAGOa"gaiB&772>>q2wFDA$<AE1b5!R%Q-2*=)B#B1b5#HIIIIrB   c            	         	 ddl mm}  t        ddd       t        dd      t        dd      gt        dd      t        dd      gg      }         |      sJ  |  d      |      sJ t        t        d	      j                  d
      d         dk\  rt        t        fd       y y # t        $ r t	        d       Y w xY w)Nr   )arrayarray_equalz?NumPy must be available to test creating matrices from ndarraysr5   r=   r;   Tcopynumpy.c                        d      S )NFr  rA   )r5   r  s   rC   rD   z'test_numpy_conversion.<locals>.<lambda>  s    %"6 rB   )r  r  r  ImportErrorr0   r#   r+   r   r1   splitr.   r   )r  np_arrayr5   r  s     @@rC   test_numpy_conversionr  u  s    P, 	S!QA}Q1-}Q1/EF1a]1a346 7HuQx***uQT*H555
77!!#&q)*a/y67 0  PNOPs   B6 6CCc                  d   t        ddd      } | j                  | z  j                  j                         t	        | j                  | z  j                  d   | j                  | z  j                  d   g| j                  | z  j                  d   | j                  | z  j                  d   gg      k(  sJ y )Nr5   r   r=   rY   rX   r   rl   )r#   Tr   r   r!   r}   s    rC   test_issue_2749r    s    S!QACC!G;;""$!##'T1BQSS1WKKPTDU0VccAg[[qD)*0, )- - - -rB   c                      t        ddd      } | j                  | z  j                         dz  t        | d   dz  gg      k(  sJ y )Nr4   r;   r?   rY   r   )r#   r  r   r!   )r4   s    rC   test_issue_2750r    sF    S!QACCE "$42/@(AAAArB   c                      t        ddd      } t        ddd      }t        | |      dk(  sJ t        | d   |d         j                  t        u sJ t        dd      } t        dd      }t        | |      dk(  sJ y )	Nr5   rg   r;   r6   r=   Fr   T)r#   r   funcr,   r   s     rC   test_issue_7842r    s    S!QAS!QAa8uafag##r)))1aA1aAa8trB   c                     t        d      }  t        d      |       }|j                  |       }t        |      t        |      |z  z   }t	        |      t        |      |j                  |       z  z   }t	        |      t	        |       z  |j                  |       j                  |       z  }t        |g|g|gg      }t        |j                  |      g|j                  |      g|j                  |      gg      }|j                  |      |k(  sJ y )Nr   r4   )r   r   r   r   r   r   r!   )r   r4   dxexp1exp2exp3r5   r6   s           rC   test_issue_21195r    s    AaA	
Bq6CF2IDq6CFBGGAJ''Dq6#a&="''!***1--D'(A111?@A66!9>>rB   c                     t        ddd      } t        ddd      }| |z  }t        |      j                         }t        ddd      }|j                  | | t        |z  z         }|d   |d   z  |d   |d   z  z   |d	   |d
   z  z   }|d   j                  t              |k(  sJ t        |d   t              j                         |k(  sJ y )Nr5   r=   rg   r6   r   rX   r   rl   rq   r   rY   )r#   r!   adjugatero   r4   r   r   )r5   r6   JJinvr   Jkexpecteds          rC   test_issue_24859r     s    S!QAS!QA	!A!9DS!QA	1a!A#g	Bwqw4401T71T7?BHd8==x'''4!!!#x///rB   c                  L   t        d      } t        dd      }t        d|       t        | d      cxk(  r| |fv sJ  J t        ddgddgg      }t        t        dt        z  gdt        z  dt        z  gg      }t        t        |      t        |t              cxk(  r|k(  sJ  J t        ddd      }t        ||      t        ||      k(  sJ t        ||      t        ||      k(  sJ t        t        ||      }t        |t        |      }t        ||t              }||cxk(  r|cxk(  rt        ||      k(  sJ  J t        t        ||      }t        |t        |      }t        ||t              }||cxk(  r|cxk(  rt        ||      k(  sJ  J t        ||      |dz  k(  sJ t        |||      t        ||dz        k(  sJ t        |||      t        |dz  |      k(  sJ t        |||      t        |||      k(  sJ t        |t        ||t              t        ||dz        k(  sJ y Nr=   r   r;   rg   ru   r5   )r   r,   r   r!   r4   r#   r   )r   r   r   Mxr5   abcs           rC   test_MatMul_postprocessorr'    s   aA	Aq	Bq!9Aq	,aW,,,,,AA A	!QqSAaC1:&	'Bq!9Aq	'R'''''S!QAq!9q!$$$q!9q!$$$Aq!AAq!AAq!A'Q'&Q-'''''Aq!AAq!AAq!A'Q'&B-'''''q!91q!Q<6!QT?***q!Q<6!Q$?***q!Q<6!Q?***q!Q12q5!1111rB   c                      t        d      } t        | t        j                        t        t        j                  |       k(  sJ y rb   )r   r   r   NaN)r   s    rC   test_MatAdd_postprocessor_xfailr*    s/     	aAq!%%=CqM)))rB   c                  Z   t        d      } t        d|       t        | d      cxk(  r| k(  sJ  J t        t        j                  |       }|t        | t        j                        k(  sJ t	        |t              sJ |j
                  t        j                  | fk(  sJ t        t        j                  |       }|t        | t        j                        k(  sJ t	        |t              sJ |j
                  t        j                  | fk(  sJ t        | t        j                        }t	        |t              sJ |j
                  t        j                  | fk(  sJ t        ddgddgg      }t        t        |      }|t        |t              k(  sJ t	        |t              sJ |j
                  t        |fk(  sJ t        ddd      }t        ||      t        ||      cxk(  r	||z   k(  sJ  J t        t        ||      }|t        |t        |      cxk(  rTt        ||t              cxk(  r?t        t        ||      cxk(  r*t        |t        |      cxk(  rt        ||t              k(  sJ  J t	        |t              sJ |j
                  t        ||z   fk(  sJ t        ||      d|z  k(  sJ t        |||      t        |||      cxk(  rt        |||      cxk(  r|d|z  z   k(  sJ  J t        |t        ||t              }t	        |t              sJ |j
                  dt        z  |d|z  z   fk(  sJ y r"  )r   r   r   Infinityr   rw   ComplexInfinityr)  r!   r4   r#   )r   r$  r   r5   s       rC   test_MatAdd_postprocessorr.    s   
 	aAq!9Aq	&Q&&&&&AJJAAqzz""""a66ajj!_$$$Aq!AAq(())))a66a''++++AquuAa66aeeQZAA AAq	AAq	>>a66aVS!QAq!9Aq	*QU***** 	Aq!AAq!\Aq!\Aq!\Aq!\PSTUWXZ[P\\\\\\a66aQZq!9!q!Q<3q!Q<B3q!Q<B1qs7BBBBBAq!QAa66ac1qs7^###rB   c                  J   t        t        t        t        z  t        t        z  z               t        k(  sJ t        dt        z  t        z  dt        z  t        z  z         } t        |       t        k(  sJ | j
                  dt        z  t        z  dt        z  t        z  fk(  sJ y )Nr=   ru   )typer   r7   r8   r   rw   )r$  s    rC    test_simplify_matrix_expressionsr1    s|    	!A#!)$%///!A#a%!A#a%- A7f66ac!eQqSU^###rB   c                      t        ddd      } t        ddd      }t        |       t        |      z  }t        |      t        |       z  }||k7  sJ ||z
  dk7  sJ t        |t              rJ t        |t              rJ y )Nr5   r=   r6   r   )r#   r   r   )r5   r6   r   r   s       rC   test_expr3    s    S!QAS!QAF3q6MEF3q6MEE>>5=A%%%%%%%%%rB   c                  &    t        t        d        y )Nc                      t        ddd      S )Nr;   r=   r5   r@   rA   rB   rC   rD   z#test_invalid_args.<locals>.<lambda>  s    aC!8 rB   )r.   r   rA   rB   rC   test_invalid_argsr6    s    
<89rB   c                      t        dd      } t        | dd      }|j                         }|j                  dd      }|j                  |j                  k(  sJ |j                  d   |j                  d   k(  sJ y )Nr5   T)complexr=   rg   r   )r	   r#   r   ro   rw   )A_labelr5   A_1A_2s       rC   test_matrixsymbol_from_symbolr<    sj    S$'GWa#A
&&(C
&&A,C88qvv88A;!&&)###rB   c                      t        ddd      } | j                         t        | d   | d   | d   g| d   | d   | d	   gg      k(  sJ t        t        d
        y )Nrj   r=   rg   rY   rX   r   r   rl   r   c                  *    t         j                         S r   )r5   r   rA   rB   rC   rD   z"test_as_explicit.<locals>.<lambda>,  s    q}} rB   )r#   r   r   r.   rU   )rj   s    rC   test_as_explicitr?  &  sm    S!QA==?o	
4!D'1T7#	
4!D'1T7#/     :./rB   c                     t        ddt        j                        j                  dk(  sJ j                  t        j                  k(  sJ t        ddgddgg      v sJ t        dd      v sJ t        t        fd       t        t        fd       t        t        t        t        j                        t        v sJ t        t        fd	       t        t        fd
       t        ddh d      t        ddgddgg      t        ddgg      } v t        j                  k(  sJ | v t        j                  k(  sJ t        t        d        t        t        d        t        t        d        y )Nr=   )setrs   r;   rg   ru   c                      t          v S r   r}   r   s   rC   rD   z test_MatrixSet.<locals>.<lambda>7      a1f rB   c                      d v S r|   rA   rC  s   rC   rD   z test_MatrixSet.<locals>.<lambda>8      a1f rB   c                      t          v S r   )r7   rC  s   rC   rD   z test_MatrixSet.<locals>.<lambda>;  rD  rB   c                       v S r   rA   )r   rh   s   rC   rD   z test_MatrixSet.<locals>.<lambda><  rF  rB   >   r;   r=   rg   c                  8    t        ddt        j                        S )Nr=   r   r'   r   RealsrA   rB   rC   rD   z test_MatrixSet.<locals>.<lambda>B  s    yB8 rB   c                  8    t        ddt        j                        S )Ng333333@r?   rJ  rA   rB   rC   rD   z test_MatrixSet.<locals>.<lambda>C  s    yb!'': rB   c                      t        ddd      S )Nr=   )r;   r=   rg   )r'   rA   rB   rC   rD   z test_MatrixSet.<locals>.<lambda>D  s    i1i8 rB   )r'   r   rK  rZ   rA  r!   r,   r.   r   rN   r[   r5   falserU   )ri   r   rh   s    @@rC   test_MatrixSetrO  /  s=   !QAGG$A77f55AGGAA A6M61aA6M6
9n%
9n%!QAGG$A6M6
9n%
9n%!QI&AAA AAxAFqwwFqww
:89
::;
989rB   c                  B   t        ddd      } t        ddd      }t        dd      }|  |z    | z
  |z   |k(  sJ |  |z    | z
  |z   j                         |k(  sJ |  |z    | z
  |z   j                         |k(  sJ |  |z    | z
  |z   |z
  j                         |k(  sJ |  |z    | z
  |z   |z
  j                         |k(  sJ | | |z   z  || j                  |j                  z   z  z   j                         | dz  | |z  z   || j                  z  z   ||j                  z  z   k(  sJ y )Nr5   r=   r6   )r#   r,   r   r   r  )r5   r6   rj   s      rC   test_matrixsymbol_solvingrQ  G  sM   S!QAS!QA1aAR!V9q=1!!!b1fIMA'')Q...b1fIMA%%'1,,,b1fIMA!++-222b1fIMA!))+q000q1uI1339%--/1a4!A#:!##3E!##3MMMMrB   N)wsympy.concrete.summationsr   sympy.core.exprtoolsr   sympy.core.functionr   r   sympy.core.relationalr   sympy.core.symbolr   r	   r
   (sympy.functions.special.tensor_functionsr   sympy.matrices.denser   sympy.polys.polytoolsr   
sympy.corer   r   r   r   r   r   r   sympy.functionsr   r   r   r   r   r   sympy.simplifyr   sympy.matricesr   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   sympy.matrices.exceptionsr(   &sympy.matrices.expressions.determinantr)   r*   "sympy.matrices.expressions.matexprr+   "sympy.matrices.expressions.specialr,   r-   sympy.testing.pytestr.   r/   r0   importlib.metadatar1   rN   r[   r\   r   r   r4   r5   r6   r7   r8   r9   r:   rV   r`   rd   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r'  r*  r.  r1  r3  r6  r<  r?  rO  rQ  rA   rB   rC   <module>rd     s   ) * . $ 2 2 C & (   : : #5 5 5 5 ; C < C 4 4 &T21aACLaaaaaa8$&!'4T9 2E&;(D!!/.D(60'5#)> J J8-B
	
02: * *,$^$&:$0:0	NrB   