U
    ZÊ¹jd  ã                   @   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�s�t‚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   új/var/www/html/bwave/python/venv/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    