o
    …º¥gd  ã                   @   s°   d Z ddlmZ ddlmZmZmZ 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 dd	lmZ dd
lmZ ddlmZ ddlmZmZ dd„ Zdd„ Zdd„ ZdS )zTests on algebraic numbers. é    )ÚTuple)ÚAlgebraicNumberÚIÚRational)ÚS)ÚSymbol)Úsqrt)ÚPoly)Úto_number_field)ÚDMP)ÚQQ)ÚCRootOf)ÚxÚyc                  C   s	  t d d tdƒ} }t|t d}|jttdƒtdƒgtƒks!J ‚|j|ks(J ‚|jd u s/J ‚|j| ks6J ‚|j	s;J ‚|j
du sBJ ‚| ¡ tjtjgksNJ ‚| ¡ tdƒtdƒgks\J ‚t|t dd}|jttdƒtdƒgtƒkssJ ‚|j|kszJ ‚|jtdƒksƒJ ‚|j| ksŠJ ‚|j	sJ ‚|j
du s–J ‚t|t tdƒd}|jttdƒtdƒgtƒks¯J ‚|j|ks¶J ‚|jtdƒks¿J ‚|j| ksÆJ ‚|j	sËJ ‚|j
du sÒJ ‚ttdƒg ƒjtg tƒksáJ ‚ttdƒd	ƒjtg tƒksðJ ‚ttdƒd
ƒjtg tƒksÿJ ‚ttdƒdgƒjttdƒgtƒksJ ‚ttdƒtddƒgƒjttddƒgtƒks+J ‚ttdƒddgƒjttdƒtdƒgtƒksCJ ‚ttdƒtddƒtddƒgƒjttddƒtddƒgtƒkscJ ‚ttdƒg d¢ƒjttdƒtdƒgtƒks{J ‚tt|t dddgƒ}|jttdƒtdƒgtƒks—J ‚|j|ksŸJ ‚|jd u s§J ‚|j| ks¯J ‚|j	sµJ ‚|j
du s½J ‚| ¡ tjtdƒgksËJ ‚| ¡ tdƒtdƒgksÚJ ‚t| |fddgƒ}|jttdƒtdƒgtƒksôJ ‚|j|ksüJ ‚|jd u sJ ‚|j| ksJ ‚|j	sJ ‚|j
du sJ ‚tt| ƒ|fddgƒ}|jttdƒtdƒgtƒks6J ‚|j|ks>J ‚|jd u sFJ ‚|j| ksNJ ‚|j	sTJ ‚|j
du s\J ‚ttdƒƒjttdƒtdƒgtƒksqJ ‚ttdƒ ƒjttdƒtdƒgtƒks‡J ‚ttdƒƒ}ttdƒƒ}||ksšJ ‚ttdƒt d}||ks©J ‚||ks°J ‚ttdƒddgƒ}ttdƒddgƒ}||krÐ|tdƒd ksÒJ ‚|t kdu rà|t kdu sâJ ‚ttdƒddgƒ}ttdƒddgtd}| t ¡tt ddksJ ‚| ¡ ttddksJ ‚| ¡ tdƒksJ ‚| t ¡t ks&J ‚| ¡ tdƒks1J ‚| t ¡t ks;J ‚ttdƒddgƒ}ttdƒddgtd}| ¡ }|td|j d ƒksaJ ‚| t ¡tdt  d ddkssJ ‚| ¡ tdt d ddks„J ‚| ¡ dtdƒ d ks“J ‚| t ¡dt  d ks¡J ‚| ¡ dtdƒ d ks°J ‚| t ¡dt  d ks¾J ‚ttdƒƒ}ttdƒƒ}|j|j  kràtdƒtddƒfksãJ ‚ J ‚ttdƒdd}|jtdƒtddƒtdƒfksýJ ‚ttdƒg d¢ƒ}|jtdƒtdddƒfksJ ‚ttdƒddgdƒ}t|ƒ}t|dd}||ks1J ‚|jjdks:J ‚ttdƒtdƒ tdƒd dtdƒd dgƒ}t|g d¢ƒ}|j|jksaJ ‚| ¡ tdƒkslJ ‚| ¡ dksuJ ‚tdƒ}|jdu sJ ‚d S )Né   ©Úgené   r   Fr   )r   ÚaliasT© )r   r   é   é   é   é	   )r   r   r   é   )r   r   )ÚdomainÚalphaÚgammai÷ÿÿÿ©r   r   r   )r   r   r   Úrepr   r   Úrootr   ÚminpolyÚ	is_numberÚ
is_aliasedÚcoeffsr   ÚOneÚZeroÚnative_coeffsr   r   r	   r   Úas_polyÚas_exprr   r
   Úargsr   ÚnameÚto_rootÚis_primitive_element)r!   r    ÚaÚbÚcÚpr   r   úb/var/www/visachat/venv/lib/python3.10/site-packages/sympy/polys/numberfields/tests/test_numbers.pyÚtest_AlgebraicNumber   sØ    
 
 
(00ÿ
ÿ0"""*,  $"2$ .r3   c                  C   sš  t tdƒtd ¡ } | jtd d ksJ ‚| jtdƒksJ ‚| jttdƒtdƒgtƒks.J ‚t dtdƒ td ¡ } | jtd d ksEJ ‚| jdtdƒ ksPJ ‚| jttdƒtdƒgtƒks`J ‚t tdƒd td ¡ } | jtd d kswJ ‚| jdtdƒ ks‚J ‚| jttdƒtdƒgtƒks’J ‚t tdƒd t	ddƒdgtd ¡ } | jtd d ks¯J ‚| jdtdƒ ksºJ ‚| jttddƒtdƒgtƒksËJ ‚d S )	Nr   r   r   r   r   é   r   é   )
r   r   r   Úto_algebraic_integerr!   r    r   r   r   r   )r.   r   r   r2   Útest_to_algebraic_integer©   s       $&r7   c                  C   sÞ   t tdƒƒ ¡ tdƒksJ ‚t ttd d dƒg d¢d} |  ¡ ttd td  td  t d dƒks6J ‚t ttd d dƒg d¢d}| ¡ tdƒ d tdƒt d  ksZJ ‚|jdd	ttd t d d
ƒksmJ ‚d S )Nr   r   r   é   r   )r$   r   F)Úradicalsr   )r   r   r,   r   r   r   r   )Úzeta5_squaredÚzeta3_squaredr   r   r2   Útest_AlgebraicNumber_to_rootÂ   s   2**r<   N)Ú__doc__Úsympy.core.containersr   Úsympy.core.numbersr   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.polys.polytoolsr	   Ú!sympy.polys.numberfields.subfieldr
   Úsympy.polys.polyclassesr   Úsympy.polys.domainsr   Úsympy.polys.rootoftoolsr   Ú	sympy.abcr   r   r3   r7   r<   r   r   r   r2   Ú<module>   s      