U
    	Ç-ed  ã                   @   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sBt‚|j|ksPt‚|jd ks^t‚|j	| kslt‚|j
svt‚|jdks„t‚| ¡ tjtjgksœt‚| ¡ tdƒtdƒgks¸t‚t|t dd}|jttdƒtdƒgtƒksæt‚|j|ksôt‚|jtdƒkst‚|j	| kst‚|j
s$t‚|jdks4t‚t|t tdƒd}|jttdƒtdƒgtƒksht‚|j|ksxt‚|jtdƒksŒt‚|j	| ksœt‚|j
s¨t‚|jdks¸t‚ttdƒg ƒjtg tƒksØt‚ttdƒd	ƒjtg tƒksøt‚ttdƒd
ƒjtg tƒkst‚ttdƒdgƒjttdƒgtƒks@t‚ttdƒtddƒgƒjttddƒgtƒkspt‚ttdƒddgƒjttdƒtdƒgtƒks t‚ttdƒtddƒtddƒgƒjttddƒtddƒgtƒksàt‚ttdƒdddgƒjttdƒtdƒgtƒkst‚tt|t dddgƒ}|jttdƒtdƒgtƒksJt‚|j|ksZt‚|jd ksjt‚|j	| kszt‚|j
s†t‚|jdks–t‚| ¡ tjtdƒgks²t‚| ¡ tdƒtdƒgksÐt‚t| |fddgƒ}|jttdƒtdƒgtƒkst‚|j|kst‚|jd ks$t‚|j	| ks4t‚|j
s@t‚|jdksPt‚tt| ƒ|fddgƒ}|jttdƒtdƒgtƒksˆt‚|j|ks˜t‚|jd ks¨t‚|j	| ks¸t‚|j
sÄt‚|jdksÔt‚ttdƒƒjttdƒtdƒgtƒksþt‚ttdƒ ƒjttdƒtdƒgtƒks*t‚ttdƒƒ}ttdƒƒ}||ksPt‚ttdƒt d}||ksnt‚||ks|t‚ttdƒddgƒ}ttdƒddgƒ}||kr¼|tdƒd ksÀt‚|t kdkrÜ|t kdksàt‚ttdƒddgƒ}ttdƒddgtd}| t ¡tt ddks$t‚| ¡ ttddks>t‚| ¡ tdƒksTt‚| t ¡t ksht‚| ¡ tdƒks~t‚| t ¡t ks’t‚ttdƒddgƒ}ttdƒddgtd}| ¡ }|td|j d ƒksÞt‚| t ¡tdt  d ddkst‚| ¡ tdt d ddks$t‚| ¡ dtdƒ d ksBt‚| t ¡dt  d ks^t‚| ¡ dtdƒ d ks|t‚| t ¡dt  d ks˜t‚ttdƒƒ}ttdƒƒ}|j|j  krÚtdƒtddƒfksàn t‚ttdƒdd}|jtdƒtddƒtdƒfkst‚ttdƒdddgƒ}|jtdƒtdddƒfksHt‚ttdƒddgdƒ}t|ƒ}t|dd}||ks~t‚|jjdkst‚ttdƒtdƒ tdƒd dtdƒd dgƒ}t|dddgƒ}|j|jksàt‚| ¡ tdƒksöt‚| ¡ dk	st‚tdƒ}|jdk	s t‚d S )Né   ©Úgené   r   Fr   )r   ÚaliasT© )r   r   é   é   é   é	   é   )r   r   )ÚdomainÚalphaÚgammai÷ÿÿÿ)r   r   r   Úrepr   r   ÚAssertionErrorÚ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   úl/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/polys/numberfields/tests/test_numbers.pyÚtest_AlgebraicNumber   sÚ     
 "   (00 ÿÿ
2"""*,  $"0$ .r+   c                  C   s¤  t tdƒtd ¡ } | jtd d ks*t‚| jtdƒks<t‚| jtt	dƒt	dƒgt	ƒks\t‚t dtdƒ td ¡ } | jtd d ksŠt‚| jdtdƒ ks t‚| jtt	dƒt	dƒgt	ƒksÀt‚t tdƒd td ¡ } | jtd d ksît‚| jdtdƒ kst‚| jtt	dƒt	dƒgt	ƒks(t‚t tdƒd t
ddƒdgtd ¡ } | jtd d ksdt‚| jdtdƒ ks|t‚| jtt	ddƒt	dƒgt	ƒks t‚d S )	Nr   r   r   r   r   é   r   é   )r   r   r   Zto_algebraic_integerr!   r   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t‚t ttd d dƒdddgd} |  ¡ ttd td  td  t d dƒksnt‚t ttd d dƒdddgd}| ¡ tdƒ d tdƒt d  ks¸t‚|jdd	ttd t d dƒksÞt‚d S )
Nr   r   r   é   r   )r"   r   F)Zradicals)r   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    