
    sg                         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
 Zd Zy)    )x)S)AlgebraicNumber)sqrt)Polycyclotomic_poly)QQ)DomainMatrixDM)	round_two)raisesc                     t        t        d        t        t        d        t        d      t        j                  dt
              dft        d      t        j                  dt
              dft        d	z  dz
  t        d
dgddggt
              dft        d	z  dz
  t        d
dgdd
ggt
              dft        dz  t        d	z  z   d	t        z  z
  dz   t        g dg dg dgt
              j                         dft        dz  dt        d	z  z  z   dt        z  z
  dz   t        g dt
              j                         dft        dz  dt        d	z  z  z   dt        z  z   dz
  t        g dt
              j                         dft        dz  dt        d	z  z  z   t        z
  dz   t        g dt
              j                         dft        dz  dt        d	z  z  z   dt        z  z
  dz
  t        g dt
              j                         dft        dz  dt        d	z  z  z   dz   t        g dt
              j                         dft        dz  dt        d	z  z  z   dt        z  z   d
z
  t        g dt
              j                         dft        dz  dt        d	z  z  z   dz   t        g dt
              j                         dft        dz  dt        d	z  z  z   dt        z  z   dz
  t        g dt
              j                         dft        dz  dt        d	z  z  z   t        z
  dz   t        g dt
              j                         d ft        dz  dt        d	z  z  z   dt        z  z
  dz   t        g dt
              j                         d!ft        dz  dt        d	z  z  z   dt        z  z
  dz   t        g d"t
              j                         d#ft        dz  dt        d	z  z  z   dt        z  z   d
z
  t        g d$t
              j                         dft        dz  dt        d	z  z  z   d	t        z  z
  dz   t        g d%t
              j                         d&ft        dz  dt        d	z  z  z   dt        z  z
  dz   t        g d't
              j                         d(ft        dz  d)t        d	z  z  z   dt        z  z   dz
  t        g d*t
              j                         d+ft        dz  d,t        d	z  z  z   d)t        z  z
  d-z   t        g d.t
              j                         d/fdt        dz  z  dt        d	z  z  z   d0t        z  z
  d1z   t        g dg dg dgt
              j                         dft        dd      t        dz  z  t        dd      t        d	z  z  z   t        d0d      t        z  z
  t        d1d      z   t        g dg dg dgt
              j                         dff} | D ]u  \  }}}t        j                  |      }|j                         j                  }|j                         }||k(  sJ |j                         |z  j                         d	z  d
k(  ruJ  y )2Nc                  >    t        t        t        dz  dz
              S )N      )r   r   r        \/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/numberfields/tests/test_basis.py<lambda>z test_round_two.<locals>.<lambda>   s    ya1fqj)9: r   c                  P    t        t        t        dz  t        d      z               S )Nr   )r   r   r   r   r   r   r   r   z test_round_two.<locals>.<lambda>   s    ya1ftAw.>)?@ r         }         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   	transposealg_field_from_polymaximal_order	QQ_matrixdiscriminantinvdet)casesfB_expd_expKBds          r   test_round_twor?      s   
::;
:@A
 
	\--a4c:		\--a4f=	
a!R!Vq&k2B7;	
a!R!Q!Q("-r2	
a!q&1q5	 1	$b)Y@S)TVX&Y&c&c&egkl 
AAqD1q5	 1	$b)ceg&h&r&r&tvyz	
AAqD1q5	 1	$b)TVX&Y&c&c&egkl	
AAqD1	q	 "%Z\^"_"i"i"kmpq	
AAqD1q5	 1	$b)TVX&Y&c&c&egkl	
AAqD1	b!QSUV``bdhi	
AAqD1q5	 1	$b)Y[]&^&h&h&jlno	
AAqD1	b!VXZ[eegimn	
AAqD1q5	 1	$b)^`b&c&m&m&oqst	
AAqD1	q	 "%PRT"U"_"_"achi	
AAqD1q5	 1	$b)^`b&c&m&m&oquv	
AAqD1q5	 1	$b)Y[]&^&h&h&jlpq	
AAqD1q5	 1	$b)Y[]&^&h&h&jlno	
AAqD1q5	 1	$b)JB&O&Y&Y&[]cd	
AAqD1q5	 1	$b)TVX&Y&c&c&egkl	
AAqD1q5	 1	$b)TVX&Y&c&c&egkl	
AQT		AE	!B	&+[]_(`(j(j(lnst	
1a4!AqD&26	!B	&IyBU+VXZ([(e(e(gimn	Aq!Q$Aq!Q$	&B1	4r"ay	@"iQZ\oEprtBuBB  CB  DH  	I]/E` ! -5%""1%OO''NNEzz ""$a'1,,,-r   c                     t        t        d      d      } t        j                  |       }|j	                         }|j	                  d      }|j	                  d      }| |dg       |t
        j                  t
        j                  g      gk(  sJ |dt
        j                  | dz  z   gk(  sJ ||j                  j                  dg      |j                  j                  t
        j                  t
        j                  g      gk(  sJ y )	Nr   alpha)aliassympy)fmtalgr   r   )	r   r   r	   algebraic_fieldintegral_basisr   Halfextfield_element)rA   kB0B1B2s        r   "test_AlgebraicField_integral_basisrO   L   s    DG73E
5!A	
			B	
		g		&B	
		e		$B!QC&!QVVQVV,-....!QVVeAg%&&&&!%%%%qc*%%%%qvvqvv&679 9 9 9r   N)	sympy.abcr   
sympy.corer   sympy.core.numbersr   (sympy.functions.elementary.miscellaneousr   sympy.polysr   r   sympy.polys.domainsr	   sympy.polys.matricesr
   r   sympy.polys.numberfields.basisr   sympy.testing.pytestr   r?   rO   r   r   r   <module>rY      s+      . 9 - " 1 4 '=-@	9r   