o
    GZŽhd  ã                   @   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   ÚminpolyZ	is_numberZ
is_aliasedÚcoeffsr   ZOneZZeroZnative_coeffsr   r   r	   r   Zas_polyZas_exprr   r
   Úargsr   ÚnameÚto_rootZis_primitive_element)r!   r    ÚaÚbÚcÚpr   r   úZ/var/www/auris/lib/python3.10/site-packages/sympy/polys/numberfields/tests/test_numbers.pyÚtest_AlgebraicNumber   sØ    
 
 
(00ÿ
ÿ0"""*,  $"2$ .r+   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   Zto_algebraic_integerr!   r    r   r   r   r   )r&   r   r   r*   Útest_to_algebraic_integer©   s       $&r.   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)Zradicalsr   )r   r   r%   r   r   r   r   )Zzeta5_squaredZzeta3_squaredr   r   r*   Útest_AlgebraicNumber_to_rootÂ   s   2**r0   N)Ú__doc__Zsympy.core.containersr   Zsympy.core.numbersr   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   Z(sympy.functions.elementary.miscellaneousr   Zsympy.polys.polytoolsr	   Z!sympy.polys.numberfields.subfieldr
   Zsympy.polys.polyclassesr   Zsympy.polys.domainsr   Zsympy.polys.rootoftoolsr   Z	sympy.abcr   r   r+   r.   r0   r   r   r   r*   Ú<module>   s      