U
    9%e                     @   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dddgdddgdddggt dftd dtd
   dt  d tdddgt dftd dtd
   dt  d tdddgt dftd dtd
   t d tdddgt dftd dtd
   dt  d tdddgt dftd dtd
   d tdddgt dftd dtd
   dt  d tdddgt dftd dtd
   d tddd gt dftd dtd
   dt  d tdddgt d!ftd dtd
   t d tdddgt d"ftd dtd
   dt  d tdddgt d#ftd dtd
   dt  d td$ddgt d%ftd dtd
   dt  d td&ddgt d!ftd dtd
   d
t  d td'ddgt d(ftd dtd
   dt  d td'd)dgt d*ftd d+td
   dt  d td'ddgt d,ftd d-td
   d+t  d. td/ddgt d0fdtd  dtd
   d1t  d2 tdddgdddgdddggt dftddtd  tddtd
   td1dt  td2d tdddgdddgdddggt dff} | D ]T\}}}t	|}|
 j}| }||kst| |  d
 dkstqd S )3Nc                   S   s   t ttd d S )N      )r   r   r    r   r   h/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/polys/numberfields/tests/test_basis.py<lambda>       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      r         }         iYr   r   r   r   r            i	)r   r   r   r   )r   r   r   )r   r   r   i)r   r   r   )r   r   r   i)r   r   )r   r   ii  )r   r   r   r   iyQ   )r   )r   r   r   )r   r   r   1   iit))r   r   r   r   r    iQ))r   r   )r   r   )r   r   )r   r   r   i)r   r   r   i]	   i        )r   r   r   r$   iT
   (   )r   
ValueErrorr   r	   eyer   r   r
   Z	transposeZalg_field_from_polyZmaximal_orderZ	QQ_matrixZdiscriminantAssertionErrorinvZdet)ZcasesfZB_expZd_expKBdr   r   r   test_round_two   s@    ""B4404,4,404444444Jb0

r/   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\t|dtj| d  gksvt||j	dg|j	tjtjggkstd S )	Nr   alpha)aliasZsympy)fmtalgr   r   )
r   r   r   Zalgebraic_fieldZintegral_basisr   ZHalfr)   extZfield_element)r0   kB0ZB1ZB2r   r   r   "test_AlgebraicField_integral_basisL   s    
"r7   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   r/   r7   r   r   r   r   <module>   s   @