
    Qi                         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dS )    )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            n# 1 swxY w Y   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 ]0}t          d          D ]}	t          ||	z  rdnd
          D ]}
t          ||	dd|          } t          |           \  }}}||| z  |z  k    sJ t          |          sJ |                                                    t                     |                                                    t                     t          | t                    \  }}}||| z  |z  k    sJ t          |          sJ |                                 |                                 2d S )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              }/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/matrices/tests/test_normalforms.pytest_smith_normalr?      s8   


:::lll===ABBA
,,,}}}lllK
L
LCQ3&&&&!!$$GAq!A	>>>>sA		!	! 5 5T!A#YYQ

41::6Qb,!AYYtBqzz$q''24 5 55 5 5 5 5 5 5 5 5 5 5 5 5 5 5 a!eQTAXDQr!u---5555AxA
1a&

CQ3&&&&=D1XX  q 	 	A1+22!,,  q!BTBBB-a001aAEAI~~~~+A.....b!!!b!!!-a441aAEAI~~~~+A.....	 s   
BD""D&)D&c            
         ddl m}  t                      5   | g dg dg dg dg          }d d d            n# 1 swxY w Y   t          |dt                     t                      5   | g dg d	g d
g dg          }d d d            n# 1 swxY w Y   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            n# 1 swxY w Y   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            n# 1 swxY w Y   t          |dt                     t                      5   | ddgg          }d d d            n# 1 swxY w Y   t          |          |k    sJ d S )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77777		!	! I IFLLLLLLGHHI I I I I I I I I I I I I I IAvr		!	! Q QflllMMM===,,,OPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q QQ3&&&&sA		!	! 5 5FT!A#YYQ

41::6Qb,!AYYtBqzz$q''24 5 55 5 5 5 5 5 5 5 5 5 5 5 5 5 5 Avr!uAd###T!a%%=%=%=tAqD1HUY?Z?Z?Z[DQ4''''		!	!  FQF8              Avr		!	!  fq!fX              Q3&&&&&&sV   9= =(BBB	BEE!$E!#G>>HH-IIIc                  p   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          |                                           |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 d S )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   s0   """$7$7$79L9L9LMNNA
)))YYY			2
3
3Cq!!S(((([[[...+++yyy)))TUUFq{{}}--7777%%%':':':<O<O<OPQQA
)))YYY			2
3
3Cq!!S((((qA&&&#----qBqEE***c1111qGAJJ///36666!!!#6#6#6HIIA
2q'Aq6Aq6*
+
+Cq!!S((((AAA'((A
1#sQC
!
!Cq!!S((((((    c                      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 d S )Nr"   r   r   r   r+   )r   r   )AHs     r>   test_issue_23410rh   l   sa    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 7 7 7 7 7 $ $ $ $ $ $ & & & & & & - - - - - - - -              ' & & & & & & & & & & & & & # # #L' ' '6) ) )0' ' ' ' 'rd   