o
    …º¥g·/  ã                   @   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sKJ ‚tˆ ˆƒd u sTJ ‚tˆ | ƒd u s]J ‚tˆ |ƒtddƒdtddƒ dgksqJ ‚tˆ |ƒtdd	ƒdtddƒ dtd
dƒdgksŠJ ‚tˆˆ ƒd u s“J ‚tˆˆƒddgksžJ ‚tˆ| ƒd u s§J ‚tˆ|ƒtddƒ dtddƒdgks»J ‚tˆ|ƒtddƒ dtddƒdtddƒ dtdd	ƒdgksÚJ ‚t| ˆ ƒd u sãJ ‚t| ˆƒd u sìJ ‚t| | ƒddgks÷J ‚t| |ƒd u sJ ‚t| |ƒtddƒdtddƒ dtddƒdtdd	ƒ dgks!J ‚t|ˆ ƒd u s+J ‚t|ˆƒd u s5J ‚t|| ƒd u s?J ‚t||ƒddgksKJ ‚t||ƒtddƒ dtddƒdtddƒ dtdd	ƒdgkskJ ‚t|ˆ ƒd u suJ ‚t|ˆƒd u sJ ‚t|| ƒd u s‰J ‚t||ƒd u s“J ‚t||ƒddgksŸJ ‚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ÏJ ‚d S )Né   c                      s
   t ˆ ˆƒS )N)r   © ©ÚaÚbr   úc/var/www/visachat/venv/lib/python3.10/site-packages/sympy/polys/numberfields/tests/test_subfield.pyÚ<lambda>   s   
 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   ÚQ)ÚcÚdÚeÚfr   r   r   Útest_field_isomorphism_pslq   sn   (ÿ"ÿ(
ÿ"
ÿ
ÿ$ÿ
ÿ"ÿ ÿ.ÿr0   c                  C   s  t dtdƒƒdgksJ ‚t ttdƒ ttdƒ d ƒddgks!J ‚t t tdƒ ttdƒ d ƒddgks7J ‚t ttdƒ t tdƒ d ƒddgksMJ ‚t t tdƒ t tdƒ d ƒddgksdJ ‚t dt tdƒ d dt tdƒ d ƒtddƒdgks‚J ‚t dt tdƒ d dt tdƒ d ƒtd	dƒdgks J ‚t dt tdƒ d d
t tdƒ d ƒtd	dƒdgks¾J ‚t dt tdƒ d d
t tdƒ d ƒtddƒdgksÜJ ‚t dt tdƒ d d dt tdƒ d ƒtddƒdgksüJ ‚t dt tdƒ d d dt tdƒ d ƒtd	dƒdgksJ ‚t dt tdƒ d d d
t tdƒ d ƒtd	dƒdgks>J ‚t dt tdƒ d d d
t tdƒ d ƒtddƒdgks_J ‚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u s³J ‚t||ƒdu s½J ‚t||ƒdu sÇJ ‚t||ƒdu sÑJ ‚t || dd|ksÝJ ‚t ||dd|kséJ ‚t ||dd|ksõJ ‚t ||dd|ksJ ‚t || dd|ksJ ‚t ||dd|ksJ ‚t ||dd|ks%J ‚t ||dd|ks1J ‚ttdƒ ƒ}t|| ƒdu sBJ ‚t||ƒdu sLJ ‚t||ƒdu sVJ ‚t||ƒdu s`J ‚t || dd|kslJ ‚t ||dd|ksxJ ‚t ||dd|ks„J ‚t ||dd|ksJ ‚t || dd|ksœJ ‚t ||dd|ks¨J ‚t ||dd|ks´J ‚t ||dd|ksÀJ ‚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u sêJ ‚t||ƒdu sôJ ‚t||ƒdu sþJ ‚t||ƒdu sJ ‚t || dd|ksJ ‚t ||dd|ks J ‚t ||dd|ks,J ‚t ||dd|ks8J ‚t || dd|ksDJ ‚t ||dd|ksPJ ‚t ||dd|ks\J ‚t ||dd|kshJ ‚ttdƒ ƒ}t|| ƒdu syJ ‚t||ƒdu sƒJ ‚t||ƒdu sJ ‚t||ƒdu s—J ‚t || dd|ks£J ‚t ||dd|ks¯J ‚t ||dd|ks»J ‚t ||dd|ksÇJ ‚t || dd|ksÓJ ‚t ||dd|ksßJ ‚t ||dd|ksëJ ‚t ||dd|ks÷J ‚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u s+J ‚t||ƒdu s5J ‚t||ƒdu s?J ‚t||ƒdu sIJ ‚t || dd|ksUJ ‚t ||dd|ksaJ ‚t ||dd|ksmJ ‚t ||dd|ksyJ ‚t || dd|ks…J ‚t ||dd|ks‘J ‚t ||dd|ksJ ‚t ||dd|ks©J ‚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u sùJ ‚t||ƒdu sJ ‚t||ƒdu sJ ‚t||ƒdu sJ ‚t || dd|ks#J ‚t ||dd|ks/J ‚t ||dd|	ks;J ‚t ||dd|
ksGJ ‚t || dd|ksSJ ‚t ||dd|ks_J ‚t ||dd|	kskJ ‚t ||dd|
kswJ ‚ttdƒƒ}ttdƒƒ}ttdƒƒ}t||ƒdu s“J ‚t||ƒdu sJ ‚t|| ƒdu s§J ‚t tdƒtdƒddd u s·J ‚t tdƒtdƒddd u sÇJ ‚t tdƒtdƒddd u s×J ‚t tdƒtdƒddd u sçJ ‚ttdƒƒ}tdtdƒd  ƒ}t||ƒdu sJ ‚t ||ƒd u sJ ‚d S )Nr   r   r   éþÿÿÿr   r'   é   é#   iúÿÿÿr)   é   é÷ÿÿÿéÿÿÿÿr   T)ÚfastFiõÿÿÿr"   ißÿÿÿr&   éýÿÿÿé!   r   é1   iÏÿÿÿ)
r   r   r   r   r   r   ÚHalfÚZeror
   ÚOne)ÚpÚqÚrÚsÚ
pos_coeffsÚ
neg_coeffsr   Úpos_1_coeffsÚneg_5_coeffsÚpos_5_coeffsÚneg_1_coeffsr   r,   r   r   r   Útest_field_isomorphismM   s  *,,.<<<<(ÿÿ(ÿ
ÿ(ÿ
ÿ(ÿ
ÿ       rH   c               	   C   sÌ  t tdƒgtƒtd d dgfksJ ‚t tdƒtdƒgtƒtd dtd   d ddgfks0J ‚t tdƒgtddttd d dd	dgfksIJ ‚t tdƒtdƒgtddttd dtd   d dd	ddgfkslJ ‚t tdƒgtdd
td d dgddggfks…J ‚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½J ‚t tdƒgtdddttd d dd	dgddggfksÛJ ‚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sJ ‚t tdƒgddttd d ƒdgfks0J ‚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 g d¢fksrJ ‚t tdƒdgtƒtd d ddgfksˆJ ‚t dtdƒgtƒtd d ddgfksžJ ‚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ÁJ ‚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äJ ‚d S )Nr   r   r   é   é
   T)ÚpolysÚQQ)Údomain©Úexr   r   r"   )rO   rK   c                   S   ó   t g tddS )NFrN   ©r   r   r   r   r   r   r     ó    z(test_primitive_element.<locals>.<lambda>c                   S   rP   )NTrN   rQ   r   r   r   r   r     rR   r1   r2   )r   r   r   )	r   r   r   r   r+   r   Ú
ValueErrorr   r	   r   r   r   r   Útest_primitive_elementõ   sb   &ÿÿ2ÿÿÿ&ÿÿÿ4ÿÿÿÿ ÿ8ÿÿ
ÿ.26,,FJrT   c                  C   sÌ   t tdƒƒttdƒƒksJ ‚t tdƒtdƒgƒttdƒtdƒ ƒks$J ‚ttdƒtdƒ tjtjtddƒtjgƒ} t tdƒtdƒtdƒ ƒ| ksJJ ‚t tdƒttdƒtdƒ ƒƒ| ks]J ‚ttdd„ ƒ d S )Nr   r   r5   c                   S   s   t tdƒtdƒƒS )Nr   r   )r   r   r   r   r   r   r   #  s    z&test_to_number_field.<locals>.<lambda>)	r   r   r   r   r;   r<   r   r   r   )r   r   r   r   Útest_to_number_field  s   ÿÿ*"&rU   c                  C   sN   t tdƒtdƒtdƒ ƒ} t tdƒtdƒtdƒ ƒ}t| |ƒddgks%J ‚d S )Nr   r   r'   r   r   )r   r   r   r   r   r   r   Útest_issue_22561&  s   rV   c                  C   s\   t td td  td  t d dƒ} |  ¡  tdt t d ƒ}t| |ƒddgks,J ‚d S )NrI   r   r   r   r6   r'   r   )r   r   Ú_resetr   r   r   r   r   r   r   r   Útest_issue_22736,  s   &rX   N)%Ú__doc__Úsympy.core.numbersr   r   r   r   Úsympy.core.singletonr   Ú&sympy.functions.elementary.exponentialr   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.external.gmpyr	   Ú!sympy.polys.numberfields.subfieldr
   r   r   r   r   Úsympy.polys.polyerrorsr   Úsympy.polys.polytoolsr   Úsympy.polys.rootoftoolsr   Úsympy.testing.pytestr   Ú	sympy.abcr   r+   r0   rH   rT   rU   rV   rX   r   r   r   r   Ú<module>   s(    4 )$