a
    kº”hè1  ã                   @   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 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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)ÚQQ)Ú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–J ‚tˆ ˆƒd u 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gksJ ‚tˆˆ ƒd u s*J ‚tˆˆƒddgksBJ ‚tˆ| ƒd u sVJ ‚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sTJ ‚t|ˆ ƒd u shJ ‚t|ˆƒd u s|J ‚t|| ƒd u sJ ‚t||ƒ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 u s$J ‚t||ƒd u s8J ‚t||ƒddgksPJ ‚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   úZ/var/www/auris/lib/python3.9/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   ÚQ)ÚcÚdÚeÚfr   r   r   Útest_field_isomorphism_pslq   sn    (ÿ"ÿ
*
ÿ"ÿ
ÿ$ÿ
ÿ"ÿ ÿ.ÿr2   c                  C   s$  t dtdƒƒdgksJ ‚t ttdƒ ttdƒ d ƒddgksBJ ‚t t tdƒ ttdƒ d ƒddgksnJ ‚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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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 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sDJ ‚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 spJ ‚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sTJ ‚t ||dd|kslJ ‚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sBJ ‚t ||dd|ksZJ ‚t ||dd|ksrJ ‚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s2J ‚t ||dd|ksJJ ‚t ||dd|ksbJ ‚t ||dd|kszJ ‚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tdƒ ƒ}t|| ƒdu süJ ‚t||ƒdu sJ ‚t||ƒdu s$J ‚t||ƒdu s8J ‚t || dd|ksPJ ‚t ||dd|kshJ ‚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 stJ ‚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	sDJ ‚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 
s8J ‚t || dd|k
sPJ ‚t ||dd|k
shJ ‚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tdƒƒ}ttdƒƒ}ttdƒƒ}t||ƒdu s0J ‚t||ƒdu sDJ ‚t|| ƒdu sXJ ‚t tdƒtdƒddd u sxJ ‚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
   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_isomorphismN   s   *,,.>>>>(ÿÿ
(ÿÿ
(ÿÿ
(ÿÿ
       rC   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s`J ‚t tdƒgtddttd d dd	dgfks’J ‚t tdƒtdƒgtddttd dtd   d dd	ddgfksØJ ‚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s8J ‚t tdƒgddttd d ƒdgfksfJ ‚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sêJ ‚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sBJ ‚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©Úpolysr   ©Údomain©Úexr   r    r$   )rK   rG   c                   S   s   t g tddS )NFrJ   ©r   r   r   r   r   r   r     r   z(test_primitive_element.<locals>.<lambda>c                   S   s   t g tddS )NTrJ   rL   r   r   r   r   r     r   r3   r4   )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rN   c                  C   sÌ   t tdƒƒttdƒƒksJ ‚t tdƒtdƒgƒttdƒtdƒ ƒksHJ ‚ttdƒtdƒ tjtjtddƒtjgƒ} t tdƒtdƒtdƒ ƒ| ks”J ‚t tdƒttdƒtdƒ ƒƒ| ksºJ ‚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   Útest_to_number_field  s    ÿÿ*"&rO   c                  C   sN   t tdƒtdƒtdƒ ƒ} t tdƒtdƒtdƒ ƒ}t| |ƒddgksJJ ‚d S )Nr   r   r)   r   r   )r   r   r   r   r   r   r   Útest_issue_22561'  s    rP   c                  C   s\   t td td  td  t d dƒ} |  ¡  tdt t d ƒ}t| |ƒddgksXJ ‚d S )NrD   r   r   r   r8   r)   r   )r   r   Z_resetr   r   r   r   r   r   r   r   Útest_issue_22736-  s    &rQ   c                  C   s  t dtd  dtd   dt  d dƒt dtd  dtd   dt  d dƒ } }t| |gddd  ¡ d dkszJ ‚t| |gddd	d  ¡ d dks J ‚t | ¡t |¡ }}| |¡}|j ¡ d dksÖJ ‚ttt|d
ttt|d
 tdt t|d
ks
J ‚d S )Nr<   r   r   é   r   r   TrF   )rG   rK   rH   )	r   r   r   Z	primitiver   Zalgebraic_fieldZunifyÚmodr   )r   r   Úf1Úf2Zf3r   r   r   Útest_issue_277984  s    V$&
rV   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.domainsr   Zsympy.polys.polyerrorsr   Zsympy.polys.polytoolsr   Zsympy.polys.rootoftoolsr   Zsympy.testing.pytestr   Z	sympy.abcr   r-   r2   rC   rN   rO   rP   rQ   rV   r   r   r   r   Ú<module>   s*   4 )$