
    oVh                         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
mZmZmZmZ d dlmZmZ d dlmZ d dlZd	 Zd
 Zd Zd Zy)    )warns_deprecated_sympy)Symbol)Poly)Matrix
randMatrix)invariant_factorssmith_normal_formsmith_normal_decomphermite_normal_formis_smith_normal_form)ZZQQ)IntegerNc            
         t        g dg dg dg dg      } t        g dg dg dg dg      }t        |       |k(  sJ t        |       \  }}}||| z  |z  k(  sJ t        d	      }t	               5  t        t        |d
z
        t        d
|      t        d|      gdt        |      t        d|      gt        d|      t        d|      t        |      gg      } d d d        d
|d
z
  |dz  d
z
  f}t        | t        |         |k(  sJ t        ddgg      } t        ddgg      }t        |       |k(  sJ t        j                  d      }t        d      D ]  }t        d      D ]  }	t        ||	z  rdnd
      D ]  }
t        ||	dd|      } t        |       \  }}}||| z  |z  k(  sJ t        |      sJ |j                         j                  t               |j                         j                  t               t        | t              \  }}}||| z  |z  k(  sJ t        |      sJ |j                          |j                             y # 1 sw Y   wxY w)N               	   r   r                  
   r    r      r   r   r   r   r    r   r   r   r      r   r   r   r   r   xr"   r   r   domainr   r   r       2   )maxpercentprng)r   r	   r
   r   r   r   r   r   randomRandomranger   r   invto_DMr   )msmfastr'   invsr/   ij_s              U/home/dcms/DCMS/lib/python3.12/site-packages/sympy/matrices/tests/test_normalforms.pytest_smith_normalr?      sA   
:l=ABA
,}lK
LCQ3&&&!!$GAq!A	>>sA		! 5T!A#YQ
41:6Qb,!AYtBqz$q'24 55 a!eQTAXDQr!u-555AxA
1a&
CQ3&&&==D1X q 	A12!, q!BTB-a01aAEAI~%~+A...b!b!-a41aAEAI~%~+A...	5 5s   0A(IIc            
         ddl m}  t               5   | g dg dg dg dg      }d d d        t        dt               t               5   | g dg d	g d
g dg      }d d d        t        |      k(  sJ t        d      }t               5   | t        |dz
        t        d|      t        d|      gdt        |      t        d|      gt        d|      t        d|      t        |      gg      }d d d        t        |dt        |          t        d|d      t        |dz
  d      t        |dz  dz
  d      f}t        |      |k(  sJ t               5   | ddgg      }d d d        t        |dt               t               5   | ddgg      }d d d        t        |      |k(  sJ y # 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   LxY w)Nr   )	RawMatrixr   r   r   r   ringr!   r#   r$   r&   r'   r"   r(   r   r)   r   r   )
sympy.polys.solversrA   r   setattrr   r	   r   r   r   r   )r   r5   r6   r'   r:   s        r>   test_smith_normal_deprecatedrE   9   s   7		! ILLGHIAvr		! QlM=,OPQQ3&&&sA		! 5T!A#YQ
41:6Qb,!AYtBqz$q'24 55 Avr!uAd#T!a%%=tAqD1HUY?Z[DQ4'''		! QF8Avr		! q!fXQ3&&&+I IQ Q
5 5  s<   F*	F7A%GGG*F47GGGG%c                     t        g dg dg dg      } t        g dg dg dg      }t        |       |k(  sJ t        g dg dg d	g dg dg      }t        | j                               |k(  sJ t        g d
g dg dg      } t        g dg dg dg      }t        |       |k(  sJ t        | d      |k(  sJ t        | t        d            |k(  sJ t        | t	        d            |k(  sJ t        g dg dg dg      } t        ddgddgddgg      }t        |       |k(  sJ t        ddgddgddgg      } t        dgdgdgg      }t        |       |k(  sJ y )N)r            )   )r            +   )r+         %   /   )r"   r   r   )r   r   r"   )r   r   r"   )rQ   r   rL   )   iq   )0   r      )r   r   D   t      )r   r   r   r   )D)r    r   r   r%   r   )-   $         r   )r+   r   r   r   r"      r   r   r   r"   rG   )r   r   	transposer   r   )r5   hnftr_hnfs      r>   test_hermite_normalrc   T   sp   "$79LMNA
)Y	2
3Cq!S((([.+y)TUFq{{}-777%':<OPQA
)Y	2
3Cq!S(((qA&#---qBqE*c111qGAJ/3666!#6HIA
2q'Aq6Aq6*
+Cq!S(((AAA'(A
1#sQC
!Cq!S(((    c                  t    t        ddgddgddgg      } t        ddgddgddgg      }t        |       |k(  sJ y )Nr"   r   r   r   r+   )r   r   )AHs     r>   test_issue_23410rh   l   sO    B!Q!Q()AAAA'(Aq!Q&&&rd   )sympy.testing.pytestr   sympy.core.symbolr   sympy.polys.polytoolsr   sympy.matricesr   r   sympy.matrices.normalformsr   r	   r
   r   r   sympy.polys.domainsr   r   sympy.core.numbersr   r0   r?   rE   rc   rh    rd   r>   <module>rq      s;    7 $ & -  ' & #L'6)0'rd   