U
    	Ç-e·/  ã                   @   sÜ   d Z ddlmZ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mZ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 eZdd„ Zdd„ Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dS )z4Tests for the subfield problem and allied problems. é    )ÚAlgebraicNumberÚIÚpiÚRational)ÚS)Úexp)Úsqrt)ÚMPQ)Úis_isomorphism_possibleÚfield_isomorphism_pslqÚfield_isomorphismÚprimitive_elementÚto_number_field)ÚIsomorphismFailed)ÚPoly)ÚCRootOf)Úraises)Úxc               
      s´  t tƒ‰ t ttdƒ ƒ‰tt‡ ‡fdd„ƒ t tdƒƒ‰ t tdƒƒ‰t tdƒƒ} t tdƒtdƒ ƒ}t tdƒtdƒ tdƒ ƒ}tˆ ˆ ƒddgks–t‚tˆ ˆƒd ks¨t‚tˆ | ƒd ksºt‚tˆ |ƒtddƒdtddƒ dgksât‚tˆ |ƒtdd	ƒdtddƒ dtd
dƒdgkst‚tˆˆ ƒd ks*t‚tˆˆƒddgksBt‚tˆ| ƒd ksVt‚tˆ|ƒtddƒ dtddƒdgks€t‚tˆ|ƒtddƒ dtddƒdtddƒ dtdd	ƒdgksÀt‚t| ˆ ƒd ksÔt‚t| ˆƒd ksèt‚t| | ƒddgks t‚t| |ƒd kst‚t| |ƒtddƒdtddƒ dtddƒdtdd	ƒ dgksTt‚t|ˆ ƒd ksht‚t|ˆƒd ks|t‚t|| ƒd kst‚t||ƒddgks¨t‚t||ƒtddƒ dtddƒdtddƒ dtdd	ƒdgksèt‚t|ˆ ƒd ksüt‚t|ˆƒd kst‚t|| ƒd ks$t‚t||ƒd ks8t‚t||ƒddgksPt‚t dtdƒ dtdƒ  d ƒ}t||ƒtdd	ƒdtdd	ƒ dtddƒdtddƒ dgks°t‚d S )Né   c                      s
   t ˆ ˆƒS )N)r   © ©ÚaÚbr   úm/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/polys/numberfields/tests/test_subfield.pyÚ<lambda>   ó    z-test_field_isomorphism_pslq.<locals>.<lambda>é   é   é   r   é	   éP   é;   é   é   i€  éC   i@  i)  é    i9  éG   iy  iÕ  i%  é   é   é‹   i[  iù  éûÿÿÿ)r   r   r   r   ÚNotImplementedErrorr   ÚAssertionErrorÚQ)ÚcÚdÚeÚfr   r   r   Útest_field_isomorphism_pslq   sœ    ( ÿ"ÿ
*
 ÿ   
   ÿ
 ÿ 
    
 ÿ
 ÿ   
   ÿ  ÿ.ÿr2   c                  C   s$  t dtdƒƒdgkst‚t ttdƒ ttdƒ d ƒddgksBt‚t t tdƒ ttdƒ d ƒddgksnt‚t ttdƒ t tdƒ d ƒddgksšt‚t t tdƒ t tdƒ d ƒddgksÈt‚t dt tdƒ d dt tdƒ d ƒtddƒdgkst‚t dt tdƒ d dt tdƒ d ƒtd	dƒdgksDt‚t dt tdƒ d d
t tdƒ d ƒtd	dƒdgks‚t‚t dt tdƒ d d
t tdƒ d ƒtddƒdgksÀt‚t dt tdƒ d d dt tdƒ d ƒtddƒdgkst‚t dt tdƒ d d dt tdƒ d ƒtd	dƒdgksDt‚t dt tdƒ d d d
t tdƒ d ƒtd	dƒdgks†t‚t dt tdƒ d d d
t tdƒ d ƒtddƒdgksÈt‚ttdƒtdƒ ƒ} ttdƒ tdƒ ƒ}ttdƒtdƒ ƒ}ttdƒ tdƒ ƒ}tjtjtddƒtjg}tddƒtjtddƒtjg}ttdƒƒ}t	|| ƒdkspt‚t	||ƒdks„t‚t	||ƒdks˜t‚t	||ƒdks¬t‚t || dd|ksÄt‚t ||dd|ksÜt‚t ||dd|ksôt‚t ||dd|kst‚t || dd|ks$t‚t ||dd|ks<t‚t ||dd|ksTt‚t ||dd|kslt‚ttdƒ ƒ}t	|| ƒdksŽt‚t	||ƒdks¢t‚t	||ƒdks¶t‚t	||ƒdksÊt‚t || dd|ksât‚t ||dd|ksút‚t ||dd|kst‚t ||dd|ks*t‚t || dd|ksBt‚t ||dd|ksZt‚t ||dd|ksrt‚t ||dd|ksŠt‚tjtjtddƒtjg}tddƒtjtddƒtjg}ttdƒƒ}t	|| ƒdksÞt‚t	||ƒdksòt‚t	||ƒdkst‚t	||ƒdkst‚t || dd|ks2t‚t ||dd|ksJt‚t ||dd|ksbt‚t ||dd|kszt‚t || dd|ks’t‚t ||dd|ksªt‚t ||dd|ksÂt‚t ||dd|ksÚt‚ttdƒ ƒ}t	|| ƒdksüt‚t	||ƒdkst‚t	||ƒdks$t‚t	||ƒdks8t‚t || dd|ksPt‚t ||dd|ksht‚t ||dd|ks€t‚t ||dd|ks˜t‚t || dd|ks°t‚t ||dd|ksÈt‚t ||dd|ksàt‚t ||dd|ksøt‚tddƒtjtddƒtdƒ g}tddƒtjtddƒtdƒ g}tdtdƒ d ƒ}t	|| ƒdks`t‚t	||ƒdkstt‚t	||ƒdksˆt‚t	||ƒdksœt‚t || dd|ks´t‚t ||dd|ksÌt‚t ||dd|ksät‚t ||dd|ksüt‚t || dd|k	st‚t ||dd|k	s,t‚t ||dd|k	sDt‚t ||dd|k	s\t‚tdtdƒ dtdƒ  d ƒ}tjtjtd
dƒtj
g}td
dƒtjtddƒtj
g}tddƒtjtddƒtj
g}	tddƒtjtddƒtj
g}
t	|| ƒdk	süt‚t	||ƒdk
st‚t	||ƒdk
s$t‚t	||ƒdk
s8t‚t || dd|k
sPt‚t ||dd|k
sht‚t ||dd|	k
s€t‚t ||dd|
k
s˜t‚t || dd|k
s°t‚t ||dd|k
sÈt‚t ||dd|	k
sàt‚t ||dd|
k
søt‚ttdƒƒ}ttdƒƒ}ttdƒƒ}t	||ƒdks0t‚t	||ƒdksDt‚t	|| ƒdksXt‚t tdƒtdƒddd ksxt‚t tdƒtdƒddd ks˜t‚t tdƒtdƒddd ks¸t‚t tdƒtdƒddd ksØt‚ttdƒƒ}tdtdƒd  ƒ}t	||ƒdkst‚t ||ƒd ks t‚d S )Nr   r   r   éþÿÿÿr   r(   é   é#   iúÿÿÿr*   é   é÷ÿÿÿéÿÿÿÿr   T)ÚfastFiõÿÿÿr#   ißÿÿÿr'   éýÿÿÿé!   r   é1   iÏÿÿÿ)r   r   r,   r   r   r   r   ÚHalfÚZeror
   ZOne)ÚpÚqÚrÚsZ
pos_coeffsZ
neg_coeffsr   Zpos_1_coeffsZneg_5_coeffsZpos_5_coeffsZneg_1_coeffsr   r.   r   r   r   Útest_field_isomorphismM   s   *,,.>>>> ÿÿ
 ÿÿ
 ÿÿ
 ÿÿ
       rC   c               	   C   sÔ  t tdƒgtƒtd d dgfks&t‚t tdƒtdƒgtƒtd dtd   d ddgfks`t‚t tdƒgtddttd d dd	dgfks’t‚t tdƒtdƒgtddttd dtd   d dd	ddgfksØt‚t tdƒgtdd
td d dgddggfkst‚t tdƒtdƒgtdd
td dtd   d ddgtddƒdtddƒ dgtddƒ dtddƒdggfks~t‚t tdƒgtdddttd d dd	dgddggfks¼t‚t tdƒtdƒgtdddttd dtd   d dd	ddgtddƒdtddƒ dgtddƒ dtddƒdggfks8t‚t tdƒgddttd d ƒdgfksft‚ttdd„ ƒ ttdd„ ƒ ttdtdƒ d ƒ ttdtdƒ d ƒ  } }t | |tgtƒtd dtd   d dddgfksìt‚t tdƒdgtƒtd d ddgfkst‚t dtdƒgtƒtd d ddgfksDt‚t tdƒdgtdd
td d ddgt	ddƒt	ddƒgg gfksŠt‚t dtdƒgtdd
td d ddgg t	ddƒt	ddƒggfksÐt‚d S )Nr   r   r   é   é
   T)ÚpolysZQQ)Údomain©Úexr   r   r#   )rI   rF   c                   S   s   t g tddS )NFrH   ©r   r   r   r   r   r   r     r   z(test_primitive_element.<locals>.<lambda>c                   S   s   t g tddS )NTrH   rJ   r   r   r   r   r     r   r3   r4   )
r   r   r   r,   r   r-   r   Ú
ValueErrorr   r	   r   r   r   r   Útest_primitive_elementõ   st    & ÿÿ2ÿÿ ÿ&ÿ  ÿÿ
4ÿ  ÿÿ
   ÿ ÿ
8ÿÿÿ
.28,,FrL   c                  C   sÌ   t tdƒƒttdƒƒkst‚t tdƒtdƒgƒttdƒtdƒ ƒksHt‚ttdƒtdƒ tjtjtddƒtjgƒ} t tdƒtdƒtdƒ ƒ| ks”t‚t tdƒttdƒtdƒ ƒƒ| ksºt‚tt	dd„ ƒ d S )Nr   r   r7   c                   S   s   t tdƒtdƒƒS )Nr   r   )r   r   r   r   r   r   r   #  r   z&test_to_number_field.<locals>.<lambda>)
r   r   r   r,   r   r=   r>   r   r   r   )r   r   r   r   Útest_to_number_field  s    ÿÿ*"&rM   c                  C   sN   t tdƒtdƒtdƒ ƒ} t tdƒtdƒtdƒ ƒ}t| |ƒddgksJt‚d S )Nr   r   r(   r   r   )r   r   r   r,   r   r   r   r   Útest_issue_22561&  s    rN   c                  C   s\   t td td  td  t d dƒ} |  ¡  tdt t d ƒ}t| |ƒddgksXt‚d S )NrD   r   r   r   r8   r(   r   )r   r   Ú_resetr   r   r   r   r,   r   r   r   r   Útest_issue_22736,  s    &rP   N)%Ú__doc__Zsympy.core.numbersr   r   r   r   Zsympy.core.singletonr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   Zsympy.external.gmpyr	   Z!sympy.polys.numberfields.subfieldr
   r   r   r   r   Zsympy.polys.polyerrorsr   Zsympy.polys.polytoolsr   Zsympy.polys.rootoftoolsr   Zsympy.testing.pytestr   Z	sympy.abcr   r-   r2   rC   rL   rM   rN   rP   r   r   r   r   Ú<module>   s&   4 )$