U
    ZÊ¹j>X  ã                   @   s  d Z ddlmZ ddlmZ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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 m!Z! ddl"m#Z#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/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5 ddlm6Z6 ddlm7Z7 ddl8m9Z9m:Z:m;Z; e	Z<dd„ Z=dd„ Z>dd„ Z?dd„ Z@d d!„ ZAd"d#„ ZBd$d%„ ZCd&d'„ ZDd(d)„ ZEd*d+„ ZFe$d,d-„ ƒZGd.d/„ ZHd0d1„ ZId2d3„ ZJd4d5„ ZKd6d7„ ZLd8d9„ ZMd:d;„ ZNd<d=„ ZOd>d?„ ZPd@dA„ ZQdBdC„ ZRdDS )EzTests for minimal polynomials. é    )Úexpand)ÚGoldenRatioÚTribonacciConstant)ÚAlgebraicNumberÚIÚRationalÚooÚpi)ÚPow)ÚS)Úexp)ÚcbrtÚsqrt)ÚcosÚsinÚtan)ÚPoly)ÚCRootOf)Únonlinsolve)ÚCircleÚintersection)ÚraisesÚslow)Ú	FiniteSet)ÚPoint2D)Úminimal_polynomialÚ_choose_factorÚ_minpoly_op_algebraic_elementÚ_separate_sqÚ_minpoly_groebner)Úapart)ÚNotAlgebraicÚGeneratorsError)ÚQQ)Úrootof)Údegree)ÚxÚyÚzc            	   
   C   sŽ  t dtƒtd kst‚t dtƒtd ks,t‚t dtƒtks>t‚t dtƒtd ksTt‚t dtƒtd ksjt‚t tdƒtƒtd d ksˆt‚t tdƒtƒtd d ks¦t‚t tdƒtƒtd d ksÄt‚t dtdƒ tƒtd d	 ksæt‚t d
tdƒ tƒtd d k�s
t‚t dtdƒ tƒtd d k�s.t‚t dtdƒ d
 tƒtd dt  d k�s^t‚t d
tdƒ d tƒtd dt  d k�sŽt‚t dtdƒ d tƒtd dt  d k�s¾t‚t dtdƒ d
 tƒtd dt  d k�sît‚t d
tdƒ d tƒtd dt  d k�st‚t dtdƒ d tƒtd dt  d k�sNt‚t tdtdƒ ƒtƒtd dtd   d k�s‚t‚t tttdƒ ƒtƒtd	 dtd   d k�s¶t‚t dt tdt ƒ tƒtd dtd   d	t  d k�söt‚t tdƒtd
ƒ tƒtd dtd   d k�s*t‚t tdƒtd
ƒ tdƒ tƒtd dtd   dt  d k�snt‚ddtdƒ  dtd
ƒ  } t d|  tƒdtd  dtd
   dtd   dt  d k�sÎt‚t dt| ƒ tƒdtd	  dtd   dtd   dtd   d k�st‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t tdƒƒ td d ¡�sdt‚t tdƒtƒtd d k�s„t‚t tdƒdd �ttd d ƒk�sªt‚t tdƒtdd �ttd d d!d"�k�sÖt‚t tdƒtdd#d$�ttd d d!d"�k�st‚t	tdƒƒ} t	td
ƒƒ}t | tƒtd d k�s8t‚t |tƒtd d
 k�sTt‚t | tdd �ttd d d!d"�k�s|t‚t |tdd �ttd d
 d!d"�k�s¤t‚t t| d d% ƒtƒdtd  d&td   d' k�sÜt‚t t|d d% ƒtƒdtd  d(td   d) k�st‚tdƒd
 d t	tdƒd
 d ƒ } }d*td	  d+td   d,td   d-td   d.td
   d/td   d0t  d1 }t t| ƒtt| ƒƒ tƒ|k�s²t‚t t|ƒtt|ƒƒ tƒ|k�sÖt‚t | t
d
dƒ tƒd2td  d3td   d4 k�st‚td5ƒ}t |tƒd6td  d k�s4t‚tdƒttƒ dtdd7t  ƒ  d8tdƒ tt
ddƒ dd7t  t
d
dƒ    d9tdƒ tt
d:dƒ dd7t  t
d
dƒ    dt tdtd7  ƒ  }t |tƒ}|d8td  d;td   d< k�s t‚dtdƒ td
ƒ }t |tƒ}|td dtd
   dtd   d=t  d	 k�sTt‚ddtdƒ td
ƒ  }t |tƒ}|d	td  d=td
   dtd   dt  d k�s°t‚tdtdƒ dtd
ƒ  tdƒ d
 ƒtdd
ƒ }t |tƒ}|td	 d	td   d>td   d?td   d@td   dAtd
   dBtd   dCt  dD k�	sRt‚tdtdƒ dtd
ƒ  tdƒ d
 ƒ}t |tƒ}|td	 dEtd   dFtd   dGtd   dHtd   dItd
   dJtd   dKt  dL k�	sêt‚t tdMƒtƒtd k�
st‚dtdƒ } t | tdƒ |  d
 tƒtd dNt  d k�
sFt‚ddtdƒ td
ƒ  }t |td#dO�d	td  d=td
   dtd   dt  d k�
s¢t‚ddtdƒ td
ƒ  }t |td#dO�td dtd
   dtd   dt  d k�
sút‚t dtdƒt  td#dO�td dt  d
 k�s.t‚t ddtdƒ  d td#dO�td d k�s^t‚t tdƒt tdtdƒ   td#dO�td dPtd   d k�s¢t‚t ttt t¡d"�tt k�sÄt‚t ttdƒd  ¡}t tt|d"�tt k�söt‚t tttd"�td d k�st‚t ttdQd"�td d k�s6t‚t ttƒtd t d k�sVt‚t td
 tƒtd
 dtd   dRt  dS k�sŠt‚t ttt tdƒ¡d"�dt tdƒ d k�s¼t‚t ttt tdTd
tdUƒ  ƒ¡d"�dt dTdTd
tdUƒ  tdd
ƒ   d
tdUƒ dTd
tdUƒ  tdd
ƒ   d=dTd
tdUƒ  tdd
ƒ   d= k�sTt‚t	tjjddV�dWdX�}t |tƒtd t d k�sŠt‚d S )YNiùÿÿÿé   éÿÿÿÿé   r   é   é   é   é   é   é-   é   é`   é   é	   é   é/   é
   é1   é%   é   é0   é   iˆ  éÐ  id  c                   S   s
   t ttƒS ©N)r   r   r&   © r@   r@   új/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/polys/numberfields/tests/test_minpoly.pyÚ<lambda>O   ó    z)test_minimal_polynomial.<locals>.<lambda>c                   S   s   t dt tƒS ©Nr,   )r   r'   r&   r@   r@   r@   rA   rB   P   rC   c                   S   s   t tdƒtƒS )Nr+   )r   r   r&   r@   r@   r@   rA   rB   Q   rC   T©Úpolysr#   ©ÚdomainF)rF   Úcomposeé   éD   iA  éˆ   i�  éQ   iÜ  i¸  itX  iðö  ix{  iÐä i.( iÙ  i¼ igö
ú”
        -1/(800*sqrt(-1/240 + 1/(18000*(-1/17280000 +
        sqrt(15)*I/28800000)**(1/3)) + 2*(-1/17280000 +
        sqrt(15)*I/28800000)**(1/3)))é@  é}   é   i5  é   iˆ  i Ð é   é8   éÀ  éà  éÀ  éÀ  é   éÀ  i   iÀÍ i Ûi ø•&l    @ä4 l     Ïzl l     xyl     x, z(-sqrt(5)/2 - 1/2 + (-sqrt(5)/2 - 1/2)**2éÆ   ©rI   é   zQQ(y)é    é"   é   é!   )ÚfuncÚphi)Úalias)r   r&   ÚAssertionErrorr   r   r   r!   Zdummy_eqr   r   ÚQr   r   r   r#   Úalgebraic_fieldr   r   r   )	ÚaÚbÚfÚeqÚexÚmpÚpÚKrc   r@   r@   rA   Útest_minimal_polynomial(   s    "$$00000044@4 ÿÿ
 ÿ.ÿ

 ÿ2ÿ
  &,.((88&:
ÿÿÿ$$ ÿÿ
 ".ÿ.þý
&
6
:2
f(
f4D@40ÿÿ
"   4ÿ
"Jÿÿÿ
rp   c               	   C   sÚ   ddt dƒ t tdƒd dt dƒ d  ƒ dt tdƒd dt dƒ d  ƒ   dd	t dƒ t tdƒd dt dƒ d  ƒ d
t tdƒd dt dƒ d  ƒ    } dtd  dtd   d }t| tƒ|ksÖt‚d S )Nlßÿÿÿo©yDÛCG,-eŒ`ö`eCÕ2#<´»N¡>Á}ÿL{ù/Í,rN”EØLªA»üCðÃQ,l‘}Y lâÿÿÿ   HÄA¸;NjCxQ] dvñ>ÂAå‡i}|¿¸9æÖ4Þ4¾)$âR{�Q·qµU¹e_}l   A>¸Ý l   ²(r[+iYûÉià|tl      @_ƒCIc6�',fkô,S?€	`@×54=?“y.W¾6„+˜ué*eXpg½Mó$ãYPõ±`5@ l   S>ÙB�B±nc&¦Kv~ÜU»;«Nü	Åw#©œA ûÝ
9œÜGpS4y<MG lèÿÿÿ   pA¶Pô.Zs;Ÿ>ýN'ªCûGòÒHEK=3BS 4dpU=…<l     @F®xŒ6öVTxVŽ9_ø6²-I­"[!<mE“ežxxîP¡[30lQ             € Me3œc“xiÎL>T£´#©B!,Å(^;ƒü3&Z	Ú†VjcÐSÜp![.ˆÿ Œ%·4š@']Y°NE%$•%88qbr|im+8;Ü>W$;$„f.33$[Sv!7w‡x*Ö)ì*‘L’ê5Y7ÀFpIºXÔ
�Ój¢ØL­jZwlhx| r2   lb        6š
 B]FÃqœ16+I;6W´!Äg’í[	O"ÜOÛv]Ó)zsnrô©e©);.æsŸH… ?OçPX:„LSO3I^Ý&'”PkDDnÁ"H+›
QSiV†n?Öv>A"¢TÏ#Ô¼.\G–gKL}Wcu~frQ[!Š.K<èñ€8Ô`=èJž+?kxy,ây�Üh”Z9rþ-½‹*Ÿr,   ld   >ŒCÚ=åcÂðJ#mí5#P<!ÞVE7|o¶>jkoQ&M ;‚ 1 [òaewâ'ª r¸B�_³nõJŒ\xI¾wýz7)5MZ1Í=—A=ž0™3ð&ÎaÆCW>íi½&�XHK2oÈa¼#yA59&J˜5Ë	];u_þojœ²#ØFð[Fy;Cþ	ÔVJ>.:®'‡E3dòyZod[t>wo H„$@F y›#g·X×3òV:3Å )r   r   r&   r   re   )ÚexprZpolyr@   r@   rA   Ú#test_minimal_polynomial_issue_19732³   s*    ÿÿþÿÿþü

ÿþrr   c                  C   sV   dt ddt dƒ  dt dƒ  tddƒd  ƒ } t| tƒ}| td ¡d	ksRt‚d S )
Nr+   r5   r,   r)   r0   r8   é   r.   läÿÿÿ    \!b1")XQ+z³>ˆpùÀH¬.‚gÕ>¨tJü4"*v ~ùb]—ìßfit )r   r   r   r&   Zcoeffre   )rn   rm   r@   r@   rA   Útest_minimal_polynomial_hi_precÃ   s    2
rt   c                  C   sd  ddl m}  ddlm} |ddtdƒ  dtdƒ  d ƒ}t|tddƒ tƒ}|td dtd   d	td   d
t  d ks„t‚|dtdƒ dtdƒ  tdƒ d ƒ}t|tddƒ tƒ}|td dtd   dtd   dtd   dtd   dtd   dtd   dt  d k�s&t‚| dd„ t	ddƒD ƒŽ }t|tƒ}| 
tdi¡dk�s`t‚d S )Nr   )ÚAdd)Úexpand_multinomialr+   r-   r,   r0   r2   év   éô   i)  r)   r/   rT   r.   rU   rV   rW   rX   rY   rZ   c                 S   s   g | ]}t |ƒ‘qS r@   )r   )Ú.0Úir@   r@   rA   Ú
<listcomp>Ó   s     z.test_minimal_polynomial_sq.<locals>.<listcomp>r4   lûÿÿÿ   >/&Î5> )Zsympy.core.addru   Úsympy.core.functionrv   r   r   r   r&   re   ÚrangeÚsubs)ru   rv   rn   rm   r@   r@   rA   Útest_minimal_polynomial_sqÊ   s    $4(f
r   c                     sþ
  t dƒ} t| d tƒ}|dtd  dt  d ks6t‚tttt d ƒtƒtd d ks\t‚tttd	 ƒtdƒ tƒ}|d
td  dtd   dtd   dtd   dtd   dtd   d ksÊt‚tt	td	 ƒtdƒ tƒ}|dtd  dtd   dtd   dtd   dtd   dt  d k�s6t‚tttt d	 ƒtdƒ tƒ}|td dtd   dtd   dtd   dtd   d td	   d!td   d"td   d#td   d$td   d%td   d&t  d' k�sêt‚tttd	 ƒtdƒ tƒ}|d
td  dtd   dtd   dtd   dtd   dtd   d k�sZt‚tt	td	 ƒtdƒ tƒ}|dtd  dtd   dtd   dtd   dtd   dt  d k�sÆt‚tttt d	 ƒtdƒ tƒ}|td dtd   dtd   dtd   dtd   d td	   d!td   d"td   d#td   d$td   d%td   d&t  d' k�szt‚tttt t
dd	ƒ ƒtƒ}|td td  td  td  td  t d k�sÐt‚tttt t
dd(ƒ ƒtƒ}|td td	  td  td  td  t d k�s&t‚tt	tt
dd	ƒ ƒtƒ}|dtd  dtd   dt  d k�slt‚tttt
dd	ƒ ƒtƒ}dt	tt
dd	ƒ ƒ d	 dt	td	 ƒ dt	tt
dd	ƒ ƒ   ‰ tˆ tƒ}|td dtd   t d k�sôt‚td)dt	td	 ƒ  tƒtd dtd   t d k�s0t‚tttt
dd(ƒ ƒtƒd*td  d+td   d,td   d-td   d k�s‚t‚tttt
dd.ƒ ƒtƒdtd  dtd   dt  d k�sÄt‚tt	td( ƒtƒdtd  dtd   dtd   dt  d k�st‚ttd td  d d/ƒ‰ tˆ tƒ}|td dt  d k�sNt‚tˆ d tƒ}|td dtd   d	t  d k�s†t‚tttt d ƒtƒtd t d k�s²t‚tttt d ƒtƒtd d k�sÚt‚tttt d ƒtƒtd td  d k�s
t‚tttt d ƒtƒtd td  d k�s:t‚tttt d ƒtƒtd td  td  td  d k�szt‚tttd ƒtƒdtd  d0td   d1td   d k�sºt‚tttd ƒtƒd2td  d3td   d3td   d4td   d5td   d k�st‚tttd6 ƒtƒd
td  d7td   d7td   d8td   d9td   dtd   d k�svt‚tt	td ƒtƒdtd  dt  d k�s¦t‚dt
ddƒ tdt t d ƒ ‰ tˆ tƒtd d k�sät‚ttd:d;„ ƒ ttd<d;„ ƒ ttd=d;„ ƒ ttd>d;„ ƒ dd?d@tdƒ  dtdƒ ttdƒd ƒ dAtdƒ ttdƒ d ƒ  d   d ‰ tt‡ fdBd;„ƒ tddt
ddƒ  ƒtddt
ddƒ  ƒ tdƒ ‰ tˆ tƒ}t|ƒdCk�	rä| td/i¡dDk�	sèt‚ttd dEdF�‰ tˆ tƒ}|td dtd   d k�
s$t‚| tttd ƒ¡j�
s@t‚ttd dEdF�‰ tˆ tƒ}|dtd  d k�
stt‚| tttd ƒ¡j�
s�t‚ttd dEdF�‰ tˆ tƒ}|dtd  dtd   d k�
sÐt‚| tttd ƒ¡j�
sìt‚ttdGd;„ ƒ d S )HNrN   r0   rO   r,   i€»  i? r/   r+   r)   i   r4   i ø  r8   i ] i€œ r.   i`Ã r2   i� i‘o  é@   r-   i°  i0  iÈ  éè   éï   rR   r5   rS   é+   éF   éa   é~   éÓ   éÔ   r:   éŽ   é   é   r*   é   rU   éà   r^   r6   r   r3   é$   i   i   r>   éÜ   é   i ,  i€  iÀ  c                   S   s   t tttdƒ ƒtƒS rD   )r   r   r	   r   r&   r@   r@   r@   rA   rB     rC   z&test_minpoly_compose.<locals>.<lambda>c                   S   s   t tttdƒ ƒtƒS rD   )r   r   r	   r   r&   r@   r@   r@   rA   rB     rC   c                   S   s   t tdt t ƒtƒS )NgÙÎ÷Sãù?)r   r   r   r	   r&   r@   r@   r@   rA   rB     rC   c                   S   s   t ttt tdƒ ƒtƒS rD   )r   r   r   r	   r   r&   r@   r@   r@   rA   rB     rC   i`sÿÿi   é   c                      s
   t ˆ tƒS r?   )r   r&   r@   ©rl   r@   rA   rB   "  rC   r<   lýÿÿÿÀ{> F)Úevaluatec                   S   s   t tttdƒ ƒtƒS rD   )r   r   r	   r   r&   r@   r@   r@   rA   rB   7  rC   )r   r   r&   re   r   r   r	   r   r   r   r   r$   r   r!   ÚZeroDivisionErrorr%   r~   r   Úis_zero)rk   rm   r@   r’   rA   Útest_minpoly_composeØ   sä     &0
ÿ
ÿÿ
<ÿÿ–0
ÿ
ÿÿ<ÿÿ–::.@
&<2ÿ
BH
*,(00@@&
ÿ
ÿ
ÿÿ&
ÿ
ÿ
ÿ
ÿÿ0"*ÿÿÿ4
&
"

&r–   c                  C   s>   ddl m}  | tdd�}t|tƒ}|dtd  d ks:t‚d S )Nr   )Ú	nsimplifyg•Ö&è.>)Z	tolerancel   oDà!ò|S0o6é0�"– ém   l                    8¯6éù9V_jp©)ïA‹+üDGZ  )Zsympy.simplify.simplifyr—   r	   r   r&   re   )r—   Úrrm   r@   r@   rA   Útest_minpoly_issue_7113:  s    
ÿrš   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ƒ}d	| d
  |d
  d| d
  |d   d| d
  |d   d| d
  |  d| d
   d| d  |d
   d| d  |d   d| d   d| d  |d
   d| d  |d   d| d  |  d| d   d|  |d
   d|  |d   d|   d|d
   d|d   d|d   d|  d }td dtd   dt  d }t|tƒ|k�s°t‚d S )Ni 	= r0   iÀMr,   l   œ!: l   1D¤> r   r+   l      =]¦T r2   l     €N>“kl     ÈTf"(n‰>l     ”c6 \„D l    `xg·;ÉDãj  l     ~a`0ö_t
' l    (æ'ÃZYL=B
l    x5,%£[vxZ=l   €<LiZZqpLgC4 l   @Q†öQ¶GSr]  l   b‘ ˜Y—ë'ál¡ l   /2!#†.ÃhòR'.„; l   ðcu”FN×6�cš+]²­sVxYZl   xÜœ~gVN]|i<XON(p„b¿-RõSïÜ Îs;pŸlQ)r   r&   r   re   )Úr1Úr2Únumrm   r@   r@   rA   Útest_minpoly_issue_23677C  sZ    **&ÿÿ
þþý
ýüüû
ûúúù
ù
ø
ø	÷	÷
ÿþrž   c                  C   s8   dt ddƒ  dt ddƒ  } t| tƒtd ks4t‚d S )Nr*   r+   r0   r,   )r   r   r&   re   r’   r@   r@   rA   Útest_minpoly_issue_7574V  s    rŸ   c                      s2   t td tƒt td tƒg‰ tt‡ fdd„ƒ d S )Nr,   c                      s   t ˆ ttdƒƒS )Nr0   )r   r&   r   r@   ©Zbad_factorsr@   rA   rB   ^  rC   z$test_choose_factor.<locals>.<lambda>)r   r&   r   ÚNotImplementedErrorr@   r@   r    rA   Útest_choose_factor[  s    r¢   c                  C   sÌ  t dt tƒt t d ks t‚t dtd  tƒtd t d ksFt‚t ttƒtƒtd t ksdt‚t ttd ƒtƒtd t d ksŠt‚t ttƒt tƒttd  d ks°t‚t tdƒttƒ tƒtd dt  ksÚt‚t tdƒttƒ tƒtd dt d td   td  dt  d k�s&t‚t ttddƒ tƒtd t k�sLt‚t ttddƒ ttƒ tƒtd dt td   dt td   dtd  td   dtd  t  td  td  k�sÊt‚t ttƒt tƒtd td  t k�söt‚t ttƒtd  tƒtd dt  d td  t k�s2t‚t dt tdd�tt t d td	d
�k�sbt‚t dtd  tdd�ttd t d td	d
�k�s˜t‚t ttƒtdd�ttd t td	d
�k�sÆt‚t ttƒt tdd�ttd td  t tdd
�k�s t‚ttƒtdtd  ƒ ttd d ƒt  dttddƒ dtd  tddƒ    dttddƒ dtd  tddƒ    } t | tƒtk�s�t‚tt	dd„ ƒ tt
dd„ ƒ tt
dd„ ƒ ttdd„ ƒ d S )Nr+   r,   r2   éþÿÿÿr0   r.   TrE   zZZ(x)rG   zZZ(x, z)éýÿÿÿr-   rR   c                   S   s   t ttƒtƒS r?   )r   r   r&   r'   r@   r@   r@   rA   rB   €  rC   z-test_minpoly_fraction_field.<locals>.<lambda>c                   S   s   t ttƒtƒS r?   )r   r   r&   r@   r@   r@   rA   rB   �  rC   c                   S   s   t ttƒt tƒS r?   ©r   r   r&   r'   r@   r@   r@   rA   rB   ‚  rC   c                   S   s   t ttƒtdd�S )NFr\   r¥   r@   r@   r@   rA   rB   ƒ  rC   )r   r&   r'   re   r   r   r(   r   r   r!   r"   r¡   ©rh   r@   r@   rA   Útest_minpoly_fraction_fielda  sB     &&&*.ÿ
&Zÿ
,<0ÿ
.ÿ
8ÿ&ÿr§   c                	   C   sH   t t tttddƒ d ƒtƒ ttttddƒ d ƒ¡tƒtksDt‚d S )Nr+   r-   )r   r   r&   r   r'   r~   r(   re   r@   r@   r@   rA   Ú test_minpoly_fraction_field_slow…  s    ÿ ÿÿÿr¨   c                   C   s¤   t tdƒtt tdƒ¡d�ttdƒ ks,t‚t tdƒtt tdƒ¡d�tdtdƒ  ks\t‚t ttddƒƒtt tdƒ¡d�dtd  d ks’t‚ttdd„ ƒ d S )Nr,   rG   r/   r0   c                   S   s   t tttd�S )NrG   )r   r'   r&   r#   r@   r@   r@   rA   rB   ’  rC   z%test_minpoly_domain.<locals>.<lambda>)	r   r   r&   r#   rg   re   r   r   r!   r@   r@   r@   rA   Útest_minpoly_domainŠ  s    
ÿÿÿÿr©   c                  C   s    dt dƒ t dt dƒ d ƒ } t| tƒtd dt  d ksBt‚dt dt dƒ d ƒ dt dƒ  d dt dƒ t dt dƒ d ƒ  }t|tƒtksœt‚d S )Nr£   r,   r4   rJ   rS   r/   r¤   )r   r   r&   re   )rh   Úer@   r@   rA   Útest_issue_14831•  s     ""ÿÿr«   c                   C   s°   t ttd  tdƒd  ttd  ddtdƒ   gttƒttdƒd tdƒd ftdƒd tdƒ d tdƒt d  ftdƒd tdƒ d tdƒt d  fƒks¬t‚d S )Nr0   r,   r.   r2   r5   )r   r&   r'   r   r   r   re   r@   r@   r@   rA   Útest_issue_18248�  s
    :@(ÿÿr¬   c               	   C   sP  t tdtdƒƒdƒ} t tdtdƒƒdƒ}t| |ƒtdtdƒ tdƒ dtdƒ d d	tdƒ d  td
tdƒ d ƒd    dtdƒ d d	tdƒ d  td
tdƒ d ƒd  ƒtdtdƒ tdƒ td
tdƒ d ƒ d dtdƒ d  d	tdƒ d    td
tdƒ d ƒ d dtdƒ d  d	tdƒ d  ƒgk�sLt‚d S )Nr0   r-   r2   r)   r.   r*   r£   é   r5   éÄ   é#   i•  r,   )r   r   r   r   re   )Úc1Úc2r@   r@   rA   Útest_issue_13230£  s.    *ÿÿÿÿ ÿÿÿÿ8ÿþr²   c                  C   s”   dt dt dƒ ƒt dƒt dt dƒ ƒ   d } td dtd   dtd   d }dD ]6}tt| |d�ƒ}|tƒ|ksXtd||tƒ|f ƒ‚qXd S )Nr+   r,   r2   r0   )TFr\   z3minimal_polynomial(e, compose=%s) = %s; %s expected)r   r&   r   r   re   )rª   Zmp_expectedÚcomprm   r@   r@   rA   Útest_issue_19760«  s
    0$r´   c                   C   sØ   t dtd d  tdƒtgd�tdƒt dt tdƒ t  d tdƒt dt tdƒ t  d  tdƒt dt tdƒ t  d  tdƒt dt tdƒ t  d  ttt  d  ttt  d  ksÔt‚d S )Nr+   r.   r0   )Ú	extensionr,   )r    r&   r   r   re   r@   r@   r@   rA   Útest_issue_20163´  s    ""ÿ"þ"ýüüÿr¶   c                  C   s.   t tdƒƒ} t| d tƒtd d ks*t‚d S )Nr,   r0   r/   )r   r   r   r&   re   )Úalphar@   r@   rA   Útest_issue_22559½  s    r¸   c                  C   s‚   t tdƒtdƒ tdƒd dtdƒd dgtd�} |  ¡ tdƒksFt‚t| tƒtd d ks`t‚t| d tƒtd d ks~t‚d S )Nr,   r0   r+   r   i÷ÿÿÿ)Úgenr/   )r   r   r   r&   Zas_exprre   r   r¦   r@   r@   rA   Útest_issue_22561Â  s    2rº   c                   C   s   t tdd„ ƒ d S )Nc                   S   s   t ttdƒd  t ƒS )Nr+   r0   )r   r&   r   r@   r@   r@   rA   rB   Ê  rC   z+test_separate_sq_not_impl.<locals>.<lambda>©r   r¡   r@   r@   r@   rA   Útest_separate_sq_not_implÉ  s    r¼   c                   C   s   t tdd„ ƒ d S )Nc                   S   s   t ttdƒtdƒttƒS )Nr,   r0   )r   r
   r   r&   r#   r@   r@   r@   rA   rB   Ï  rC   z<test_minpoly_op_algebraic_element_not_impl.<locals>.<lambda>r»   r@   r@   r@   rA   Ú*test_minpoly_op_algebraic_element_not_implÍ  s    ÿr½   c                   C   s  t tdƒd ttƒdt d ks$t‚t tdƒd tdƒd  ttƒtd dt  d ks\t‚t tdƒd tdƒd  tdƒd tdƒd   ttƒtd dtd   d ks°t‚t tdƒd tdƒ d  tdƒd tdƒd   ttƒdtd  dtd   d k�st‚ttdd„ ƒ d S )	Nr,   r0   r+   r8   r)   r.   c                   S   s   t td ttƒS rD   )r   r	   r&   r   r@   r@   r@   rA   rB   Ú  rC   z'test_minpoly_groebner.<locals>.<lambda>)r   r   r&   r   re   r   r   r!   r@   r@   r@   rA   Útest_minpoly_groebnerÒ  s*    $  ÿÿ0 ÿÿ2 ÿÿ
r¾   N)SÚ__doc__r|   r   Z
sympy.corer   r   Zsympy.core.numbersr   r   r   r   r	   Zsympy.core.powerr
   Zsympy.core.singletonr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   r   Z(sympy.functions.elementary.trigonometricr   r   r   Zsympy.polys.polytoolsr   Zsympy.polys.rootoftoolsr   Zsympy.solvers.solvesetr   Zsympy.geometryr   r   Zsympy.testing.pytestr   r   Zsympy.sets.setsr   Zsympy.geometry.pointr   Z sympy.polys.numberfields.minpolyr   r   r   r   r   Zsympy.polys.partfracr    Zsympy.polys.polyerrorsr!   r"   Zsympy.polys.domainsr#   r$   r%   Z	sympy.abcr&   r'   r(   rf   rp   rr   rt   r   r–   rš   rž   rŸ   r¢   r§   r¨   r©   r«   r¬   r²   r´   r¶   r¸   rº   r¼   r½   r¾   r@   r@   r@   rA   Ú<module>   s^    b	$
		