
    \h`                        S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJrJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJrJrJrJrJr  S SKJr  S SKJ r   S r!S r"S r#S r$S r%S r&S r'S r(S r)S r*S r+S r,g)    )Add)	unchanged)Mul)symbols)Eq)Sum)imre)	Piecewise)ImmutableDenseMatrix)MatrixSymbol)MatAdd)
ZeroMatrixGenericZeroMatrixIdentityGenericIdentity	OneMatrix)MatMul)raisesc                    ^  [        [        SS5      (       d   e[        [        SS5      (       d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [	        S	5      m [        [        T T 5      (       d   e[	        S	S
S9m [        [        U 4S j5        [	        S	SS9m [        [        U 4S j5        g )N   r   c                      [        SS5      $ Nr   r        e/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/expressions/tests/test_special.py<lambda>+test_zero_matrix_creation.<locals>.<lambda>       z"a0r   c                      [        SS5      $ N       @r   r   r   r   r   r   r       s    z#q1r   c                      [        SS5      $ N               @r   r   r   r   r   r   r       r!   r   c                      [        SS5      $ Nr   r   r   r   r   r   r   r           z!R0r   c                      [        SS5      $ Nr   r$   r   r   r   r   r   r       s    z!S1r   c                      [        SS5      $ Nr   r'   r   r   r   r   r   r       r*   r   nFintegerc                     > [        T T 5      $ Nr   r/   s   r   r   r           z!Q/r   Tnegativec                     > [        T T 5      $ r3   r   r4   s   r   r   r    !   r5   r   )r   r   r   
ValueErrorr   r4   s   @r   test_zero_matrix_creationr:      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                    ^ [        5       m[        SSS9n [        SX 5      nTT:X  d   eTU:w  d   eUT:w  d   eTR                  (       d   e[	        [
        U4S j5        [	        [
        U4S j5        [	        [
        U4S j5        [        5       T:X  d   e[        TU5      [        U5      :X  d   e[        T5        g )Nr/   Tr0   Ac                     > T R                   $ r3   shapezs   r   r   *test_generic_zero_matrix.<locals>.<lambda>/   	    aggr   c                     > T R                   $ r3   rowsr@   s   r   r   rB   0   	    affr   c                     > T R                   $ r3   colsr@   s   r   r   rB   1   rG   r   )r   r   r   is_ZeroMatrixr   	TypeErrorr   hash)r/   r<   rA   s     @r   test_generic_zero_matrixrN   $   s    AT"AS!A6M66M66M6???
9o&
9n%
9n%8q==!Q<6!9$$$Gr   c                  f  ^  [        S5      (       d   e[        S5      (       d   e[        [        S 5        [        [        S 5        [        [        S 5        [        S5      m [        T 5      (       d   e[        SSS9m [        [        U 4S	 j5        [        SS
S9m [        [        U 4S j5        g )Nr   r   c                      [        S5      $ )Nr   r   r   r   r   r   /test_identity_matrix_creation.<locals>.<lambda><       x|r   c                      [        S5      $ )Nr$   rQ   r   r   r   r   rR   =   s    x}r   c                      [        S5      $ )Nr'   rQ   r   r   r   r   rR   >   rS   r   r/   Fr0   c                     > [        T 5      $ r3   rQ   r4   s   r   r   rR   C   	    x{r   Tr6   c                     > [        T 5      $ r3   rQ   r4   s   r   r   rR   E   rW   r   )r   r   r9   r   r4   s   @r   test_identity_matrix_creationrY   9   s    A;;;A;;;
:+,
:,-
:+,AA;;;U#A
:*+d#A
:*+r   c                    ^ [        5       m[        SSS9n [        SX 5      nTT:X  d   eTU:w  d   eUT:w  d   eTR                  (       d   eTS-  T:X  d   e[	        [
        U4S j5        [	        [
        U4S j5        [	        [
        U4S j5        [        5       T:X  d   e[        TU5      [        U5      :X  d   e[        T5        g )	Nr/   Tr0   r<   r   c                     > T R                   $ r3   r>   Is   r   r   'test_generic_identity.<locals>.<lambda>T   rC   r   c                     > T R                   $ r3   rE   r\   s   r   r   r^   U   rG   r   c                     > T R                   $ r3   rI   r\   s   r   r   r^   V   rG   r   )r   r   r   is_Identityr   rL   r   rM   )r/   r<   r]   s     @r   test_generic_identityrb   H   s    AT"AS!A6M66M66M6===b5A::
9o&
9n%
9n%8q==!Q<6!9$$$Gr   c                    ^  [        SS5      (       d   e[        SS5      (       d   e[        [        SS5      [        S5      5      (       d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S	 5        [        S
5      m [        T T 5      (       d   e[        S
SS9m [        [        U 4S j5        [        S
SS9m [        [        U 4S j5        g )Nr   r      c                      [        SS5      $ r   r   r   r   r   r   *test_one_matrix_creation.<locals>.<lambda>b       yQ/r   c                      [        SS5      $ r#   rf   r   r   r   r   rg   c   s    ya0r   c                      [        SS5      $ r&   rf   r   r   r   r   rg   d   rh   r   c                      [        SS5      $ r)   rf   r   r   r   r   rg   e       yB/r   c                      [        SS5      $ r,   rf   r   r   r   r   rg   f   s    yC0r   c                      [        SS5      $ r.   rf   r   r   r   r   rg   g   rl   r   r/   Fr0   c                     > [        T T 5      $ r3   rf   r4   s   r   r   rg   l       yAr   Tr6   c                     > [        T T 5      $ r3   rf   r4   s   r   r   rg   n   rp   r   )r   r   r   r   r9   r   r4   s   @r   test_one_matrix_creationrr   ^   s    Q???Q???i1ox{++++
:/0
:01
:/0
:/0
:01
:/0AQ???U#A
:./d#A
:./r   c                     [        SSS9u  p[        SX5      n[        X5      nX#-   U:X  d   eX#R                  -  [        X 5      :X  d   eX2R                  -  [        X 5      :X  d   eX"-
  [        UR                  6 :X  d   eU(       d   eUR                  5       [        X5      :X  d   eUR                  5       U:X  d   eUR                  5       [        X5      :X  d   e[        U5      U:X  d   e[        U5      U:X  d   e[        X 5      S-  [        U 5      :X  d   e[        SS5      R                  5       [        R                  " SS5      :X  d   eg )Nn mTr0   r<   r      )r   r   r   Tr?   	transpose	conjugateadjointr
   r	   r   as_explicitr   zeros)r/   mr<   Zs       r   test_ZeroMatrixr~   q   s4   5$'DAS!A1A5A::SS5Jq$$$$SS5Jq$$$$5J((((H1;;=Jq,,,,;;=A99;*Q****a5A::a5A::aQ(1+---a'')-A-G-G1-MMMMr   c                  &   [        SSS9n [        [        X SS9U 5      n[        UR                  [        5      (       d   eUR                  5       [        SU -  U 5      :X  d   e[        UR                  5       R                  [        5      (       d   eg Nr/   Tr0   F)evaluater   )r   r   r   
isinstancerF   doitr   )r/   Znns     r   test_ZeroMatrix_doitr      st    T"A
S.
2Cchh$$$$88:AaC++++chhjoos++++r   c                  t   [        SSS9u  p[        SX5      n[        X5      nUR                  X4:X  d   e[	        X#-   [
        5      (       d   eUR                  5       [        X5      :X  d   eUR                  5       U:X  d   eUR                  5       [        X5      :X  d   e[        U5      U:X  d   e[        U5      [        X5      :X  d   e[        X 5      S-  [        U 5      :X  d   e[        X 5      nUS   S:X  d   e[        SS	5      nUR                  5       [        R                  " SS	5      :X  d   eg )
Nrt   Tr0   r<   r   )rd   r   rd   r   ru   )r   r   r   r?   r   r   rw   rx   ry   r
   r	   r   r   rz   r   ones)r/   r|   r<   Us       r   test_OneMatrixr      s   5$'DAS!A!A77qfaeS!!!!;;=IaO+++;;=A99;)A/)))a5A::a5Jq$$$$Q?a8A;...!AT7a<<!QA==?2771====r   c                  &   [        SSS9n [        [        X SS9U 5      n[        UR                  [        5      (       d   eUR                  5       [        SU -  U 5      :X  d   e[        UR                  5       R                  [        5      (       d   eg r   )r   r   r   r   rF   r   r   )r/   Unns     r   test_OneMatrix_doitr      st    T"A
Cu-q
1Cchh$$$$88:1q5!,,,,chhjoos++++r   c                     [        SSS9u  pn[        SU S5      n[        X5      [        X5      -  [        X5      U-  :X  d   eU[        SS5      -  U:X  d   e[        SS5      UR                  -  UR                  :X  d   eg )Nzn m kTr0   wrd   )r   r   r   rv   )r/   r|   kr   s       r   test_OneMatrix_mulr      s~    gt,GA!S!QAQ?Yq_,	!!0CCCCyA!###Q?QSS ACC'''r   c            	         [        SSS9u  p[        SX5      n[        S5      u  p4[        U 5      n[        U5      nX&-  U:X  d   eXR-  U:X  d   eUR                  5       U:X  d   eUR	                  5       U:X  d   eUR                  5       U:X  d   eUR                  5       U:X  d   e[        U5      U:X  d   e[        U5      [        X 5      :X  d   eXSU4   S:w  d   e[        XSU4   USU S-
  4USU S-
  45      R                  U S5      R                  5       S:X  d   e[        [        XSU4   USU S-
  45      USU S-
  45      R                  U S5      R                  5       S:X  d   e[        XSU4   USU S-
  45      nUR                  5       S:X  d   e[        XSU4   USU S	-
  45      nUR                  5       R                  [        SUS:  X@S	-
  :*  -  4S
5      5      (       d   e[        XSU4   USU S-
  45      nUR                  5       R                  [        SUS:  X@S-
  :*  -  4S
5      5      (       d   e[        S5      R                  5       [         R"                  " S5      :X  d   eg )Nrt   Tr0   r<   zi jr   rd   ru   r   )r   T)r   r   r   rw   inverserx   ry   r
   r	   r   r   subsr   dummy_eqr   rz   r   eye)r/   r|   r<   ijInImexprs           r   test_Identityr      s   5$'DAS!A5>DA	!B	!B41994199<<>R::<2<<>R::<2b6R<<b6Z%%%%d8q==rQ$x!Q!q!QqSk277!<AACqHHHs2d8aAaC[)Aq!A#;7<<QqAFFHAMMM rQ$x!Q!%D99;!rQ$x!Q!%D99;aA1H%&	
    rQ$x!Q!%D99;aA1H%&	
    A;""$(<(@(@(CCCCr   c                  "   [        SSS9n [        [        X SS95      n[        UR                  [        5      (       d   eUR                  5       [        SU -  5      :X  d   e[        UR                  5       R                  [        5      (       d   eg r   )r   r   r   r   rF   r   r   )r/   Inns     r   test_Identity_doitr      so    T"A
3qe,
-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   r:   rN   rY   rb   rr   r~   r   r   r   r   r   r   r   r   r   <module>r      sw     %  % $ ) 7 : 9 ; 4I I 4 '1$*,,0&N,,>,,('DT,r   