o
    h                     @   s   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 d dlmZmZ d dlmZ dd	 Zd
d Zdd Zdd ZdS )    )warns_deprecated_sympy)Symbol)Poly)Matrix)invariant_factorssmith_normal_formhermite_normal_form)ZZQQ)Integerc                  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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 saw   Y  d
|d
 |d d
 f}t| t| d|ks}J t ddgg} t ddgg}t| |ksJ d S )N               	   r   r                  
   r   r      r   r   r   r   r   r   r   r   r   ir   r   r   r   r   xr   r   r   domainr   )r   r   r   r   r   r   r
   )msmfr!   invs r(   Y/var/www/vscode/kcb/lib/python3.10/site-packages/sympy/matrices/tests/test_normalforms.pytest_smith_normal   s     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   )
sympy.polys.solversr+   r   setattrr	   r   r   r   r
   r   )r   r%   r&   r!   r'   r(   r(   r)   test_smith_normal_deprecated!   s6   ""0r/   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;   r   r5   )   iq   )0   r      )r   r   D   t      )r   r   r   r   )D)r   r   r      r   )-   $         r   )r8   r   r   r   r      r   r   r   r   r0   )r   r   	transposer	   r   )r%   hnftr_hnfr(   r(   r)   test_hermite_normal<   s"   &rN   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   r8   )r   r   )AHr(   r(   r)   test_issue_23410T   s   rQ   N)sympy.testing.pytestr   sympy.core.symbolr   sympy.polys.polytoolsr   sympy.matricesr   sympy.matrices.normalformsr   r   r   sympy.polys.domainsr	   r
   sympy.core.numbersr   r*   r/   rN   rQ   r(   r(   r(   r)   <module>   s    