o
    GZh                     @   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
 d dlmZ d dlmZmZ d dlmZ d d	lmZ d
d Zdd ZdS )    )x)S)AlgebraicNumber)sqrt)Polycyclotomic_poly)QQ)DomainMatrixDM)	round_two)raisesc                  C   s  t tdd  t tdd  tdtdtdftdtdtd	ftd
 d tddgddggtdftd
 d tddgddggtdftd td
  d
t  d tg dg dg dgt dftd dtd
   dt  d tg dt dftd dtd
   dt  d tg dt dftd dtd
   t d tg dt dftd dtd
   dt  d tg dt dftd dtd
   d tg dt dftd dtd
   dt  d tg dt dftd dtd
   d tg dt dftd dtd
   dt  d tg dt d ftd dtd
   t d tg dt d!ftd dtd
   dt  d tg dt d"ftd dtd
   dt  d tg d#t d$ftd dtd
   dt  d tg d%t d ftd dtd
   d
t  d tg d&t d'ftd dtd
   dt  d tg d(t d)ftd d*td
   dt  d tg d+t d,ftd d-td
   d*t  d. tg d/t d0fdtd  dtd
   d1t  d2 tg dg dg dgt dftddtd  tddtd
   td1dt  td2d tg dg dg dgt dff} | D ]*\}}}t	|}|
 j}| }||ksTJ | |  d
 dkscJ q:d S )3Nc                   S   s   t ttd d S )N      )r   r   r    r   r   X/var/www/auris/lib/python3.10/site-packages/sympy/polys/numberfields/tests/test_basis.py<lambda>   s    z test_round_two.<locals>.<lambda>c                   S   s   t ttd td S )Nr   )r   r   r   r   r   r   r   r   r      s          }         iYr   r   r   r   r            r   r   r   r   r   r   r   r   r   i	))r   r   r   r   r   r   r   r   i))r   r   r   r   r   i))r   r   )r   r   r   r   ii  ))r   r   r    r    r   r   iyQ   ))r    )r   r   r    r   )r   r   r   1   iit)))r   r   r   r   r#   r   r   iQ)))r   r   )r   r   )r   r   r   r   )r   r   r   i)r   )r   r   r   r   i]	   )r   r   r   i        ))r   r   r    r'   r   r   iT
   (   )r   
ValueErrorr   r	   eyer   r   r
   Z	transposeZalg_field_from_polyZmaximal_orderZ	QQ_matrixZdiscriminantinvZdet)casesfZB_expZd_expKBdr   r   r   test_round_two   sB   ""<22.2*2*2.2222222D\0

"r2   c                  C   s   t tddd} t| }| }|jdd}|jdd}||dg|tjtjggks.J |dtj| d  gks;J ||jdg|jtjtjggksPJ d S )	Nr   alpha)aliasZsympy)fmtalgr   r   )	r   r   r   Zalgebraic_fieldZintegral_basisr   ZHalfextZfield_element)r3   kB0ZB1ZB2r   r   r   "test_AlgebraicField_integral_basisL   s   
"r:   N)Z	sympy.abcr   Z
sympy.corer   Zsympy.core.numbersr   Z(sympy.functions.elementary.miscellaneousr   Zsympy.polysr   r   Zsympy.polys.domainsr   Zsympy.polys.matricesr	   r
   Zsympy.polys.numberfields.basisr   Zsympy.testing.pytestr   r2   r:   r   r   r   r   <module>   s    @