
    sg`                        d dl mZ d dlmZ d dlmZ d dlmZ 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 d d
lmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d dlm Z  d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,y)    )Add)	unchanged)Mul)symbols)Eq)Sum)imre)	Piecewise)ImmutableDenseMatrix)MatrixSymbol)MatAdd)
ZeroMatrixGenericZeroMatrixIdentityGenericIdentity	OneMatrix)MatMul)raisesc                      t        t        dd      sJ t        t        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        t                sJ t	        d	d
       t        t         fd       t	        d	d       t        t         fd       y )N   r   c                      t        dd      S Nr   r        `/var/www/html/venv/lib/python3.12/site-packages/sympy/matrices/expressions/tests/test_special.py<lambda>z+test_zero_matrix_creation.<locals>.<lambda>       z"a0 r   c                      t        dd      S N       @r   r   r   r   r   r   z+test_zero_matrix_creation.<locals>.<lambda>   s    z#q1 r   c                      t        dd      S N               @r   r   r   r   r   r   z+test_zero_matrix_creation.<locals>.<lambda>   r    r   c                      t        dd      S Nr   r   r   r   r   r   r   z+test_zero_matrix_creation.<locals>.<lambda>       z!R0 r   c                      t        dd      S Nr   r#   r   r   r   r   r   z+test_zero_matrix_creation.<locals>.<lambda>   s    z!S1 r   c                      t        dd      S Nr   r&   r   r   r   r   r   z+test_zero_matrix_creation.<locals>.<lambda>   r)   r   nFintegerc                      t                S Nr   r.   s   r   r   z+test_zero_matrix_creation.<locals>.<lambda>       z!Q/ r   Tnegativec                      t                S r2   r   r3   s   r   r   z+test_zero_matrix_creation.<locals>.<lambda>!   r4   r   )r   r   r   
ValueErrorr   r3   s   @r   test_zero_matrix_creationr9      s    ZA&&&ZA&&&
:01
:12
:01
:01
:12
:01AZA&&&U#A
:/0d#A
:/0r   c                  n   t               t        dd      } t        d| |       }k(  sJ |k7  sJ |k7  sJ j                  sJ t	        t
        fd       t	        t
        fd       t	        t
        fd       t               k(  sJ t        |      t        |      k(  sJ t               y )Nr.   Tr/   Ac                       j                   S r2   shapezs   r   r   z*test_generic_zero_matrix.<locals>.<lambda>/       agg r   c                       j                   S r2   rowsr?   s   r   r   z*test_generic_zero_matrix.<locals>.<lambda>0       aff r   c                       j                   S r2   colsr?   s   r   r   z*test_generic_zero_matrix.<locals>.<lambda>1   rE   r   )r   r   r   is_ZeroMatrixr   	TypeErrorr   hash)r.   r;   r@   s     @r   test_generic_zero_matrixrL   $   s    AT"AS!QA6M66M66M6???
9o&
9n%
9n%8q==!Q<6!9$$$Gr   c                  P    t        d      sJ t        d      sJ t        t        d        t        t        d        t        t        d        t        d       t               sJ t        dd       t        t         fd	       t        dd
       t        t         fd       y )Nr   r   c                      t        d      S )Nr   r   r   r   r   r   z/test_identity_matrix_creation.<locals>.<lambda><   
    x| r   c                      t        d      S )Nr#   rO   r   r   r   r   z/test_identity_matrix_creation.<locals>.<lambda>=   s
    x} r   c                      t        d      S )Nr&   rO   r   r   r   r   z/test_identity_matrix_creation.<locals>.<lambda>>   rP   r   r.   Fr/   c                      t               S r2   rO   r3   s   r   r   z/test_identity_matrix_creation.<locals>.<lambda>C       x{ r   Tr5   c                      t               S r2   rO   r3   s   r   r   z/test_identity_matrix_creation.<locals>.<lambda>E   rT   r   )r   r   r8   r   r3   s   @r   test_identity_matrix_creationrV   9   s    A;;A;;
:+,
:,-
:+,AA;;U#A
:*+d#A
:*+r   c                     t               t        dd      } t        d| |       }k(  sJ |k7  sJ |k7  sJ j                  sJ dz  k(  sJ t	        t
        fd       t	        t
        fd       t	        t
        fd       t               k(  sJ t        |      t        |      k(  sJ t               y )	Nr.   Tr/   r;   r   c                       j                   S r2   r=   Is   r   r   z'test_generic_identity.<locals>.<lambda>T   rA   r   c                       j                   S r2   rC   rY   s   r   r   z'test_generic_identity.<locals>.<lambda>U   rE   r   c                       j                   S r2   rG   rY   s   r   r   z'test_generic_identity.<locals>.<lambda>V   rE   r   )r   r   r   is_Identityr   rJ   r   rK   )r.   r;   rZ   s     @r   test_generic_identityr^   H   s    AT"AS!QA6M66M66M6===b5A::
9o&
9n%
9n%8q==!Q<6!9$$$Gr   c                      t        dd      sJ t        dd      sJ t        t        dd      t        d            sJ t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d	        t        d
       t                sJ t        d
d       t        t         fd       t        d
d       t        t         fd       y )Nr   r      c                      t        dd      S r   r   r   r   r   r   z*test_one_matrix_creation.<locals>.<lambda>b       yQ/ r   c                      t        dd      S r"   rb   r   r   r   r   z*test_one_matrix_creation.<locals>.<lambda>c   s    ya0 r   c                      t        dd      S r%   rb   r   r   r   r   z*test_one_matrix_creation.<locals>.<lambda>d   rc   r   c                      t        dd      S r(   rb   r   r   r   r   z*test_one_matrix_creation.<locals>.<lambda>e       yB/ r   c                      t        dd      S r+   rb   r   r   r   r   z*test_one_matrix_creation.<locals>.<lambda>f   s    yC0 r   c                      t        dd      S r-   rb   r   r   r   r   z*test_one_matrix_creation.<locals>.<lambda>g   rg   r   r.   Fr/   c                      t                S r2   rb   r3   s   r   r   z*test_one_matrix_creation.<locals>.<lambda>l       yA r   Tr5   c                      t                S r2   rb   r3   s   r   r   z*test_one_matrix_creation.<locals>.<lambda>n   rk   r   )r   r   r   r   r8   r   r3   s   @r   test_one_matrix_creationrm   ^   s    Q??Q??i1ox{+++
:/0
:01
:/0
:/0
:01
:/0AQ??U#A
:./d#A
:./r   c                     t        dd      \  } }t        d| |      }t        | |      }||z   |k(  sJ ||j                  z  t        | |       k(  sJ ||j                  z  t        | |       k(  sJ ||z
  t        |j                   k(  sJ |sJ |j                         t        ||       k(  sJ |j                         |k(  sJ |j                         t        ||       k(  sJ t        |      |k(  sJ t        |      |k(  sJ t        | |       dz  t        |       k(  sJ t        dd      j                         t        j                  dd      k(  sJ y )Nn mTr/   r;   r      )r   r   r   Tr>   	transpose	conjugateadjointr
   r	   r   as_explicitr   zeros)r.   mr;   Zs       r   test_ZeroMatrixry   q   sL   5$'DAqS!QA1aAq5A::QSS5Jq!$$$$QSS5Jq!$$$$q5J((((H1;;=Jq!,,,,;;=A99;*Q****a5A::a5A::aQ(1+---a'')-A-G-G1-MMMMr   c                     t        dd      } t        t        | | d      |       }t        |j                  t              sJ |j                         t        d| z  |       k(  sJ t        |j                         j                  t              sJ y Nr.   Tr/   F)evaluater   )r   r   r   
isinstancerD   doitr   )r.   Znns     r   test_ZeroMatrix_doitr      sp    T"A
SA.
2Cchh$$$88:AaC++++chhjoos+++r   c                  p   t        dd      \  } }t        d| |      }t        | |      }|j                  | |fk(  sJ t	        ||z   t
              sJ |j                         t        ||       k(  sJ |j                         |k(  sJ |j                         t        ||       k(  sJ t        |      |k(  sJ t        |      t        | |      k(  sJ t        | |       dz  t        |       k(  sJ t        | |       }|d   dk(  sJ t        dd	      }|j                         t        j                  dd	      k(  sJ y )
Nro   Tr/   r;   r   )r`   r   r`   r   rp   )r   r   r   r>   r}   r   rr   rs   rt   r
   r	   r   r   ru   r   ones)r.   rw   r;   Us       r   test_OneMatrixr      s+   5$'DAqS!QA!QA77q!fa!eS!!!;;=IaO+++;;=A99;)Aq/)))a5A::a5Jq!$$$$Q?a8A;...!QAT7a<<!QA==?2771====r   c                     t        dd      } t        t        | | d      |       }t        |j                  t              sJ |j                         t        d| z  |       k(  sJ t        |j                         j                  t              sJ y r{   )r   r   r   r}   rD   r~   r   )r.   Unns     r   test_OneMatrix_doitr      sp    T"A
C1u-q
1Cchh$$$88:1q5!,,,,chhjoos+++r   c                     t        dd      \  } }}t        d| d      }t        | |      t        ||      z  t        | |      |z  k(  sJ |t        dd      z  |k(  sJ t        dd      |j                  z  |j                  k(  sJ y )Nzn m kTr/   wr`   )r   r   r   rq   )r.   rw   kr   s       r   test_OneMatrix_mulr      s    gt,GAq!S!QAQ?Yq!_,	!Q!0CCCCyA!###Q?QSS ACC'''r   c            	         t        dd      \  } }t        d| |      }t        d      \  }}t        |       }t        |      }||z  |k(  sJ ||z  |k(  sJ |j                         |k(  sJ |j	                         |k(  sJ |j                         |k(  sJ |j                         |k(  sJ t        |      |k(  sJ t        |      t        | |       k(  sJ |||f   dk7  sJ t        |||f   |d| dz
  f|d| dz
  f      j                  | d      j                         dk(  sJ t        t        |||f   |d| dz
  f      |d| dz
  f      j                  | d      j                         dk(  sJ t        |||f   |d| dz
  f      }|j                         dk(  sJ t        |||f   |d| d	z
  f      }|j                         j                  t        d|dk\  || d	z
  k  z  fd
            sJ t        |||f   |d| dz
  f      }|j                         j                  t        d|dk\  || dz
  k  z  fd
            sJ t        d      j                         t!        j"                  d      k(  sJ y )Nro   Tr/   r;   zi jr   r`   rp   r   )r   T)r   r   r   rr   inversers   rt   r
   r	   r   r   subsr~   dummy_eqr   ru   r   eye)r.   rw   r;   ijInImexprs           r   test_Identityr      s   5$'DAqS!QA5>DAq	!B	!BR4199a4199<<>R::<2<<>R::<2b6R<<b6Z1%%%%ad8q==r!Q$x!Q!q!QqSk277!<AACqHHHs2ad8aAaC[)Aq!A#;7<<QqAFFHAMMM r!Q$x!Q!%D99;!r!Q$x!Q!%D99;aA1H%&	
   r!Q$x!Q!%D99;aA1H%&	
   A;""$(<(@(@(CCCCr   c                     t        dd      } t        t        | | d            }t        |j                  t              sJ |j                         t        d| z        k(  sJ t        |j                         j                  t              sJ y r{   )r   r   r   r}   rD   r~   r   )r.   Inns     r   test_Identity_doitr      sk    T"A
3q!e,
-Cchh$$$88:!A#&&&chhjoos+++r   N)-sympy.core.addr   sympy.core.exprr   sympy.core.mulr   sympy.core.symbolr   sympy.core.relationalr   sympy.concrete.summationsr   $sympy.functions.elementary.complexesr	   r
   $sympy.functions.elementary.piecewiser   sympy.matrices.immutabler   "sympy.matrices.expressions.matexprr   !sympy.matrices.expressions.mataddr   "sympy.matrices.expressions.specialr   r   r   r   r   !sympy.matrices.expressions.matmulr   sympy.testing.pytestr   r9   rL   rV   r^   rm   ry   r   r   r   r   r   r   r   r   r   <module>r      sw     %  % $ ) 7 : 9 ; 4I I 4 '1$*,,0&N,,>,,('DT,r   