o
    GZh                     @   s   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	d
 Zdd Zdd Zd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               
   C   s,  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| \}}}|||  | ks9J td	}t / t t|d
 td
|td|gdt|td|gtd|td|t|gg} W d    n1 srw   Y  d
|d
 |d d
 f}t| t| d|ksJ t ddgg} t ddgg}t| |ksJ t	d}t
dD ]f}t
dD ]_}	t
||	 rdnd
D ]R}
t||	dd|d} t| \}}}|||  | ksJ t|sJ | t | t t| t\}}}|||  | ksJ t|s	J |  |  qqqd 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   invZto_DMr   )msmfastr%   invsr-   ij_ r;   T/var/www/auris/lib/python3.10/site-packages/sympy/matrices/tests/test_normalforms.pytest_smith_normal   sF     

r=   c                  C   s
  ddl m}  t  | g dg dg dg dg}W d    n1 s$w   Y  t|dt t  | g dg d	g d
g dg}W d    n1 sMw   Y  t||ksZJ td}t / | t|d td|td|gdt|td|gtd|td|t|gg}W d    n1 sw   Y  t|dt|  td|ddt|d ddt|d d ddf}t	||ksJ t  | ddgg}W d    n1 sw   Y  t|dt t  | ddgg}W d    n1 sw   Y  t||ksJ d S )Nr   )	RawMatrixr   r   r   r   ringr   r!   r"   r$   r%   r    r&   r   r'   r   r   )
Zsympy.polys.solversr>   r   setattrr   r   r   r   r   r   )r   r2   r3   r%   r7   r;   r;   r<   test_smith_normal_deprecated9   s6   ""0rA   c                  C   s  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saJ t| dd|kskJ t| tdd|kswJ t| tdd|ksJ t g dg dg dg} t ddgddgddgg}t| |ksJ t ddgddgddgg} t dgdgdgg}t| |ksJ d S )N)r            )   )r            +   )r)         %   /   )r    r   r   )r   r   r    )r   r   r    )rL   r   rG   )   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    rB   )r   r
   Z	transposer   r   )r2   ZhnfZtr_hnfr;   r;   r<   test_hermite_normalT   s"   &r[   c                  C   sH   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Hr;   r;   r<   test_issue_23410l   s   r^   )Zsympy.testing.pytestr   Zsympy.core.symbolr   Zsympy.polys.polytoolsr   Zsympy.matricesr   r   Zsympy.matrices.normalformsr   r   r	   r
   r   Zsympy.polys.domainsr   r   Zsympy.core.numbersr   r.   r=   rA   r[   r^   r;   r;   r;   r<   <module>   s    &