a
    kº”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sBJ ‚|j|ksPJ ‚|jd u s^J ‚|j| kslJ ‚|j	svJ ‚|j
du s„J ‚| ¡ tjtjgksœJ ‚| ¡ tdƒtdƒgks¸J ‚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 s4J ‚t|t tdƒd}|jttdƒtdƒgtƒkshJ ‚|j|ksxJ ‚|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spJ ‚ttdƒddgƒjttdƒtdƒgtƒks J ‚ttdƒtddƒtddƒgƒjttddƒtddƒgtƒksàJ ‚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sHJ ‚|j|ksXJ ‚|jd u shJ ‚|j| ksxJ ‚|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s2J ‚|j	s>J ‚|j
du sNJ ‚t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dƒƒjttdƒtdƒgtƒksüJ ‚ttdƒ ƒjttdƒtdƒgtƒks(J ‚ttdƒƒ}ttdƒƒ}||ksNJ ‚ttdƒt d}||kslJ ‚||kszJ ‚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sRJ ‚| t ¡t ksfJ ‚| ¡ tdƒks|J ‚| t ¡t ksJ ‚ttdƒddgƒ}ttdƒddgtd}| ¡ }|td|j d ƒksÜJ ‚| t ¡tdt  d ddks J ‚| ¡ 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szJ ‚| 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Þn 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sDJ ‚ttdƒddgdƒ}t|ƒ}t|dd}||kszJ ‚|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sÚJ ‚| ¡ tdƒksðJ ‚| ¡ dk	sJ ‚tdƒ}|jdu 	sJ ‚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   úY/var/www/auris/lib/python3.9/site-packages/sympy/polys/numberfields/tests/test_numbers.pyÚtest_AlgebraicNumber   sØ     
 "   (00ÿÿ
0"""*,  $"0$ .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sŠJ ‚| jdtdƒ ks J ‚| jttdƒtdƒgtƒksÀJ ‚t tdƒd td ¡ } | jtd d ksîJ ‚| 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sdJ ‚| 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slJ ‚t ttd d dƒg d¢d}| ¡ tdƒ d tdƒt d  ks´J ‚|jdd	ttd t d d
ƒksÚJ ‚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    