U
    ZÊ¹jÔ  ã                   @   s`  d Z ddlmZ ddlmZmZmZmZ ddlm	Z	m
Z
mZ ddlmZmZmZ ddlmZ dd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedƒ edƒ fedƒedƒf ZZedƒedƒfedƒedƒf ZZdd„ Z dd„ Z!d d!„ Z"d"d#„ Z#d$d%„ Z$d&d'„ Z%d(d)„ Z&d*d+„ Z'd,d-„ Z(d.d/„ Z)d0d1„ Z*d2d3„ Z+d4d5„ Z,d6S )7zETests for real and complex root isolation and refinement algorithms. é    )Úring)ÚZZÚQQÚZZ_IÚEX)ÚDomainErrorÚRefinementFailedÚPolynomialError)Údup_cauchy_upper_boundÚdup_cauchy_lower_boundÚdup_mignotte_sep_bound_squared)Úraisesc                  C   s¨   t dtƒ\} }|  d¡dgks"t‚|  |¡|dgks8t‚|d d|d   d|  d }|  |¡|d|d  d|  d tddƒ | td	dƒ td
dƒ gks¤t‚d S )NÚxé   é   é   é   é   é
   é	   é   iç  éd   )r   r   Z	dup_sturmÚAssertionError©ÚRr   Úf© r   úc/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/polys/tests/test_rootisolation.pyÚtest_dup_sturm   s
     r   c                   C   s|   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ ttdƒtdƒtdƒgtƒtjksPt‚ttdƒtdƒtdƒgtƒtdƒksxt‚d S )	Nc                   S   s
   t g tƒS ©N©r
   r   r   r   r   r   Ú<lambda>   ó    z-test_dup_cauchy_upper_bound.<locals>.<lambda>c                   S   s   t tdƒgtƒS ©Nr   r    r   r   r   r   r!      r"   c                   S   s   t tdƒtdƒgtƒS r#   )r
   r   r   r   r   r   r!      r"   r   r   éþÿÿÿr   )r   r	   r   r
   r   Úzeror   r   r   r   r   Útest_dup_cauchy_upper_bound   s
    &r&   c                   C   sf   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ ttdƒtdƒtdƒgtƒtd	d
ƒksbt‚d S )Nc                   S   s
   t g tƒS r   ©r   r   r   r   r   r   r!       r"   z-test_dup_cauchy_lower_bound.<locals>.<lambda>c                   S   s   t tdƒgtƒS r#   r'   r   r   r   r   r!   !   r"   c                   S   s   t tdƒtdƒtdƒgtƒS )Nr   r   r'   r   r   r   r   r!   "   r"   c                   S   s   t tdƒtdƒgtƒS r#   )r   r   r   r   r   r   r!   #   r"   r   r   r$   r   r   )r   r	   r   r   r   r   r   r   r   r   Útest_dup_cauchy_lower_bound   s
    r(   c                   C   sJ   t tdd„ ƒ t tdd„ ƒ ttdƒtdƒtdƒgtƒtddƒksFt‚d S )	Nc                   S   s
   t g tƒS r   ©r   r   r   r   r   r   r!   )   r"   z5test_dup_mignotte_sep_bound_squared.<locals>.<lambda>c                   S   s   t tdƒgtƒS r#   r)   r   r   r   r   r!   *   r"   r   r   r$   r   r   )r   r	   r   r   r   r   r   r   r   Ú#test_dup_mignotte_sep_bound_squared(   s    r*   c                     s†  t dtƒ\‰ } | d d ‰ˆ jˆtdƒtdƒdd�tdƒtdƒfksHt‚ˆ jˆtdƒtdƒdd�tdƒtdƒfksvt‚tt‡ ‡fdd„ƒ tddƒtddƒ }}ˆ jˆ||dd�tddƒtddƒfksÊt‚ˆ jˆ||dd�tddƒtd	dƒfksôt‚ˆ jˆ||dd�td
d	ƒtd	dƒfk�s t‚ˆ jˆ||d	d�tddƒtd	dƒfk�sLt‚ˆ jˆ||d
d�tddƒtddƒfk�sxt‚tddƒtd	dƒ }}ˆ jˆ||dd�tddƒtd	dƒfk�sºt‚ˆ jˆ||dd�td
d	ƒtd	dƒfk�sæt‚ˆ jˆ||dd�tddƒtd	dƒfk�st‚ˆ jˆ||d	d�tddƒtddƒfk�s>t‚ˆ jˆ||d
d�tddƒtddƒfk�sjt‚tddƒtdd	ƒ }}ˆ jˆ||dd�tddƒtdd	ƒfk�s¬t‚ˆ jˆ||dd�tddƒtd	dƒfk�sØt‚ˆ jˆ||dd�tddƒtd	dƒfk�st‚ˆ jˆ||d	d�tddƒtddƒfk�s0t‚ˆ jˆ||d
d�tddƒtddƒfk�s\t‚tddƒtddƒ }}ˆ jˆ||dd�tddƒ tddƒ fk�s¢t‚ˆ jˆ||dd�td	dƒ tddƒ fk�sÒt‚ˆ jˆ||dd�td	dƒ td
d	ƒ fk�st‚ˆ jˆ||d	d�td	dƒ tddƒ fk�s2t‚ˆ jˆ||d
d�tddƒ tddƒ fk�sbt‚tt‡ ‡fdd„ƒ tdƒtdƒtddƒtddƒtddƒf\}}}}}ˆ jˆ||tddƒd�||fk�sÎt‚ˆ jˆ||dd�||fk�sît‚ˆ jˆ||tddƒdd�||fk�st‚ˆ jˆ||tddƒdd�||fk�s>t‚ˆ jˆ||tddƒdd�||fk�sft‚tdƒtdƒtddƒtdd	ƒf\}}}}ˆ jˆ||tdƒd�||fk�s²t‚ˆ jˆ||| d�||fk�sÔt‚ˆ jˆ|||d�||fk�sôt‚tdƒtdƒtd
d	ƒtd	dƒf\}}}}ˆ jˆ||tdƒd�||fk�s@t‚ˆ jˆ||| d�||fk�sbt‚ˆ jˆ|||d�||fk�s‚t‚d S )Nr   r   r   )Ústepsr   c                      s   ˆ   ˆtdƒtdƒ¡S )Nr$   r   ©Údup_refine_real_rootr   r   ©r   r   r   r   r!   6   r"   z+test_dup_refine_real_root.<locals>.<lambda>r   r   r   é   r   r   é   é   r   é   é   éÿÿÿÿr$   c                      s   ˆ   ˆtdƒtdƒ¡S )Nr   r   r,   r   r.   r   r   r!   X   r"   é   r   ©Úepsé   )r7   r+   éýÿÿÿéüÿÿÿéûÿÿÿ)Zdisjoint)r   r   r-   r   r   r   Ú
ValueErrorr   )r   ÚsÚtÚuÚvÚwr   r.   r   Útest_dup_refine_real_root/   sX    ..**,,,,,,,,,,,,,000002& (((($" ($"rB   c               	      s²  t dtƒ\‰ ‰ˆ  d¡g ks t‚ˆ  d¡g ks2t‚ˆ  ˆd ˆ ¡ddgksPt‚ˆ  ˆd ˆ ¡ddgksnt‚ˆ  ˆd ˆ d	 ¡g ksŒt‚d
dg} ˆ  ˆd d ¡| ks®t‚ˆ  ˆd  d ¡| ksÊt‚ˆ  ˆd	 ¡dgksât‚ˆ  ˆd dˆ  d ¡ddgk�s
t‚ˆ  ˆd dˆd   dˆ  d ¡dddgk�s@t‚ˆ  ˆd dˆd   dˆd   dˆ  d ¡ddddgk�s„t‚ˆ  ˆd dˆd   dˆd   dˆd   dˆ  d ¡dddddgk�sÖt‚ˆ  ˆd ¡dgk�sðt‚ˆ  ˆd dˆ  d ¡ddgk�st‚ˆ  ˆd d ˆd   d!ˆ  d" ¡ddd#gk�sNt‚ˆ  ˆd d$ˆd   d%ˆd   d&ˆ  d' ¡ddd#d(gk�s’t‚ˆ  ˆd d)ˆd   d*ˆd   d+ˆd   d,ˆ  d- ¡ddd#d(d.gk�sät‚ˆ  ˆd	 ¡dgk�sþt‚ˆ  ˆd dˆ  d ¡d/dgk�s&t‚ˆ  ˆd dˆd   dˆ  d ¡d0d/dgk�s\t‚ˆ  ˆd dˆd   dˆd   dˆ  d ¡d1d0d/dgk�s t‚ˆ  ˆd dˆd   dˆd   dˆd   dˆ  d ¡d2d1d0d/dgk�sòt‚ˆ  ˆd ¡d3gk�st‚ˆ  ˆd dˆ  d ¡d4d3gk�s4t‚ˆ  ˆd d ˆd   d!ˆ  d" ¡d5d4d3gk�sjt‚ˆ  ˆd d$ˆd   d%ˆd   d&ˆ  d' ¡d6d5d4d3gk�s®t‚ˆ  ˆd d)ˆd   d*ˆd   d+ˆd   d,ˆ  d- ¡d7d6d5d4d3gk�s t‚ˆ  ˆd d ¡d8d9gk�s t‚ˆ  ˆd d ¡dgk�s>t‚ˆ  ˆd d ¡d
dgk�s^t‚ˆ  ˆd d ¡dgk�s|t‚ˆ  ˆd d ¡d
dgk�sœt‚ˆ  ˆd: d ¡dgk�sºt‚ˆ  ˆd; d ¡d
dgk�sÚt‚ˆ  ˆd< d ¡dgk�søt‚ˆ  ˆd d	 ¡ddgk�st‚ˆ  ˆd dˆd   ˆ d ¡d/ddgk�sJt‚ˆ  ˆd dˆd   d ¡d/dddgk�szt‚ˆ  ˆd dˆd   dˆd   dˆd   dˆ  d= ¡d0d/dddgk�sÌt‚ˆ  ˆd d>ˆd   d?ˆd   d@ ¡d0d/ddddgk�st‚ˆ  dˆd:  ˆd  dAˆd   d>ˆd   dBˆd   d?ˆd   dCˆ  d@ ¡d0d/ddDdddgk�szt‚ˆ  dˆd;  dEˆd   dFˆd   dGˆd   d@ ¡d0d/ddDdHdddgk�sÎt‚d<ˆd  d }ˆ  |¡dDdHgk�söt‚ˆ j|td	dƒdI�tdJdƒtdKd:ƒftdd:ƒtd	dƒfgk�s8t‚ˆ j|td	d$ƒdI�tdLdMƒtdNdOƒftd;dOƒtd<dMƒfgk�szt‚ˆ j|td	dPƒdI�tdQdRƒtdNdOƒftd;dOƒtdSdRƒfgk�s¼t‚ˆ j|td	dTƒdI�tdQdRƒtdUdVƒftdWdVƒtdSdRƒfgk�sþt‚ˆ j|td	dXƒdI�tdYdZƒtd[d\ƒftd]d\ƒtd^dZƒfgk�	s@t‚ˆ j|td	d_ƒdI�td`daƒtd[d\ƒftd]d\ƒtdbdaƒfgk�	s‚t‚dcˆd  ddˆd   deˆd   dfˆd   dgˆ  d }ˆ  |¡tdƒtd	dhƒftd	dhƒtd	dhƒftd	dƒtd	dƒftd	ƒtd	ƒftdƒtdƒfgk�
s"t‚ˆ j|td	dXƒdI�td	diƒtd	diƒftd	dhƒtd	dhƒftd	dƒtd	dƒftd	ƒtd	ƒftdƒtdƒfgk�
s’t‚dj\}}}}dkˆd  dlˆd   dmˆd   dnˆ  do }ˆ  |¡| | fdDdH||fgk�
söt‚ˆ j|td	dpƒdI�t|ƒ t|ƒ ftd	|ƒ td	|ƒ ftd	|ƒtd	|ƒft|ƒt|ƒfgk�s\t‚ˆ j|dqdr�\\}}}}	\}
}||   k �r”|k �ràn nH|td	ƒ tdƒfk�rà|	tdƒtd	ƒfk�rà|
|  k �rÞ|k �sän t‚ˆ j|dqtd	dsƒdt�t|ƒ t|ƒ ftd	|ƒ td	|ƒ ftd	|ƒtd	|ƒft|ƒt|ƒfgk�sLt‚duˆd  d;ˆd   dvˆd   dwˆ  dx }ˆ  |¡d/d
dd9gk�s˜t‚ˆ j|td	d$ƒdI�tdƒ tdƒ ftdyd>ƒ tdzdƒ ftdƒtdƒftd{d|ƒtd}d<ƒfgk�sþt‚ˆd	 }ˆ j|dd~�g k�st‚ˆ j|dd�g k�s6t‚ˆ  |¡dgk�sLt‚ˆ j|d	d~�dgk�sft‚ˆ j|d	d�dgk�s€t‚ˆ j|d	d	d€�dgk�sœt‚ˆd d }ˆ j|td:dƒd~�g k�sÆt‚ˆ j|td:dƒd~�td:dƒtddƒfgk�söt‚ˆ j|td:dƒd�d
gk�st‚ˆ j|td:dƒd�d
d	tddƒfgk�sBt‚ˆ j|td:dƒ d�g k�sbt‚ˆ j|td:dƒ d�tddƒ td:dƒ fgk�s˜t‚ˆ j|td:dƒ d~�dgk�sºt‚ˆ j|td:dƒ d~�tddƒ dJfdgk�sêt‚d
dg} ˆ j|d�d~�| k�s
t‚ˆ j|dd�| k�s"t‚ˆ j|d�dd€�| k�s<t‚t dtƒ\‰ ‰td;dƒˆd  td‚dƒƒˆ  tdOd„ƒ }ˆ  |¡dDd…gk�sŒt‚t dtƒ\‰ ‰tt‡ ‡fd†d‡„ƒ d S )ˆNr   r   r   r   ©r4   r4   ©r   r   ©r   r   r   r   ©r$   r4   ©r   r   r   )r   r   r8   é   )r   r   r   é#   é2   r5   )r   r   é   éU   éá   i  éx   )r   r   )r   r   é   éÈ   )é   rQ   é<   iL  ip  )rO   rO   r   i¬  iPÃ  i€© )é(   rS   é–   i4!  ièn i Ï) i · )rJ   rJ   )r$   r$   )r9   r9   )r:   r:   )r;   r;   )éöÿÿÿrU   )éìÿÿÿrV   )éâÿÿÿrW   )éØÿÿÿrX   )éÎÿÿÿrY   )r9   r$   )r   r   r/   é   r   r1   é   é1   é$   é   éb   éH   ©r4   r   é9   éÒ   éÁ   ©r   r   r6   r4   r9   i÷ÿÿÿr3   iøÿÿÿr0   iè  ißÿÿÿéF   é!   i'  i•ÿÿÿéã   ék   i † iÏþÿÿi‡  iðþÿÿiA  i  i1  i@B iŸûÿÿiJ	  ia  i¬Híi¤¿)i_¡À)i¶kïiQœ  i'  i'  )l   �jŸ'a$i£7wl   çw (	 l   Hk}a$l   N•,-UŸ, l   ñ*0B¿de_Ê/ l   Å@FRµ{®.hNÛ^À3Ðma3 l   Yv~1¤bÎ@´Þý
Ml   H_ø‹Zee W
l    hí] T)Úfastl      @*_�kæzÁcP )rj   r7   rU   éP   é    é    é   é   é'   é   é   ©Úinf©Úsup©rt   rv   r$   iNU i  i  )r[   rK   c                      s   ˆ   ˆd ¡S ©Nr   )Údup_isolate_real_roots_sqfr   ©r   r   r   r   r!     r"   z1test_dup_isolate_real_roots_sqf.<locals>.<lambda>)r   r   ry   r   r   r   r   r   )ÚIr   ÚaÚbÚcÚdr?   r@   ÚBÚCr=   r>   r   rz   r   Útest_dup_isolate_real_roots_sqfp   sx   ÿÿ
$ÿ
0
ÿ
<ÿ
ÿ
ÿ
$ÿ
0
ÿ
<ÿ
ÿ
ÿ
$ÿ
0
ÿ
<ÿ
ÿ
ÿ
$ÿ
0
ÿ
<ÿ
    ÿ
 ÿ

ÿ
<ÿ
(ÿ
Tÿ
8ÿ
ÿ
&ÿ
&ÿ
&ÿ
&ÿ
&ÿ
&ÿ
<"  ÿÿ
$  ÿÿ


ÿ
þýüÿ
Jÿ
jJÿ
0
ÿ
Jÿ
0 , 6"0*r‚   c               	      sÖ  t dtƒ\‰ ‰ˆ  d¡g ks t‚ˆ  d¡g ks2t‚ˆ  dˆ ¡dgksJt‚ˆ  dˆd  ¡dgksft‚ˆ  ˆd	 ˆ ¡d
dgks„t‚ˆ  ˆd	 ˆ ¡ddgks¢t‚ˆ  ˆd ˆ d ¡g ksÀt‚ddg} ˆ  ˆd	 d	 ¡| ksât‚ˆ  ˆd	  d	 ¡| ksþ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% }ˆ  |¡}ˆ  |¡td	ƒ tdd	ƒ fd	ftdd	ƒ tddƒ fdftdƒtdd	ƒfdftdd	ƒtdd	ƒfdftddƒtd	ƒfd	fgk�s4t‚ˆ  |¡td	ƒ tdd	ƒ ftdd	ƒ tddƒ ftdƒtdd	ƒftdd	ƒtdd	ƒftdd	ƒtd	ƒfgk�s¤t‚ˆ  |¡td	ƒ tdd	ƒ fdftdd	ƒ tddƒ fdftdƒtdd	ƒfdftdd	ƒtdd	ƒfdftdd	ƒtd	ƒfdfgk�s(t‚ˆd }ˆ j|d	d&�g k�sHt‚ˆ j|dd'�g k�s`t‚ˆ  |¡dgk�svt‚ˆ j|dd&�dgk�s�t‚ˆ j|dd'�dgk�sªt‚ˆ j|ddd(�dgk�sÆt‚ˆd dˆd	   d }ˆ j|tddƒd&�g k�süt‚ˆ j|tddƒd&�tddƒtdd	ƒfd	fgk�s0t‚ˆ j|tddƒd'�d)gk�sPt‚ˆ j|tddƒd'�d)dtdd	ƒfd	fgk�s€t‚ˆ j|tddƒ d'�g k�s t‚ˆ j|tddƒ d'�tdd	ƒ tddƒ fd	fgk�sÚt‚ˆ j|tddƒ d&�d*gk�süt‚ˆ j|tddƒ d&�tdd	ƒ d+fd	fd*gk�s0t‚d)d*g} ˆ j|d,d&�| k�sPt‚ˆ j|d	d'�| k�sht‚ˆ j|d,d	d(�| k�s‚t‚ˆd dˆd   ˆd  dˆd   dˆd   dˆd   dˆd   dˆd   }ˆ j|d-d.�d)dd/d*gk�sút‚ˆ j|d0d.�d1d	ddd,gfd2dddgfd3ddd+gfd4d	ddd,gfgk�sFt‚ˆd5 d5ˆd6   d7ˆd8   d }ˆd9 d:ˆd8   d;ˆd<   d=ˆd>   d?ˆd@   dAˆdB   dCˆdD   dEˆdF   dGˆdH   dIˆdJ   dKˆdL   dMˆdN   dOˆdP   dQˆdR   dSˆdT   dUˆdV   dWˆdX   dYˆdZ   d[ˆd   d\ˆd]   d[ˆd^   dYˆd_   dWˆd`   dUˆda   dSˆdb   dQˆdc   dOˆd   dMˆdd   dKˆd   dIˆd   dGˆd   dEˆd   dCˆd   dAˆd   d?ˆd   d=ˆd   d;ˆd   deˆd   dfˆd   d:ˆd   dgˆd	   dhˆ  d }ˆ  || ¡dtdd	ƒfdftd	dƒtddƒfdftddƒdfdfdidjgk�s°t‚t dtƒ\‰ ‰tt	‡ ‡fdkdl„ƒ d S )mNr   r   r   r   ©rD   r   r/   r   )rD   r   r   )rC   r   )rE   r   r   )rF   r   )rG   r   rq   r[   é`   r   r5   r1   i¨  rH   i?  r   i@  r   iì#  rZ   i(  iGU  r8   i�6  iºT  i h  id  iÀ<  iÈ  rs   ru   rw   )rF   r   )rG   r   r4   r$   F©Zbasis)rE   r   TrF   rD   rE   rG   é-   é,   iÞ  é+   é.   iL;  i#íŽ rS   iÈ¸0rp   iÏ„�é&   ijÛªAé%   l   Õ+ðe r]   l   \2X6 rI   l   7h�$ é"   l   szc^ rg   l   EX¡3ß rl   l   `MLÜé   l   ê}F3›rO   l   ¬VæC]é   l   N6e-A
r^   l   X.Ëxr2   l   *xx	gé   l   4pÞTBé   l   Þsˆ=´l   °;m}órn   rr   é   rQ   r3   ro   r0   rK   i‚ê iq} i  é/   ))r8   r/   r   ))r5   r�   r   c                      s   ˆ   ˆd ¡S rx   )Údup_isolate_real_rootsr   rz   r   r   r!   m  r"   z-test_dup_isolate_real_roots.<locals>.<lambda>)
r   r   r“   r   Zdup_sqf_partr   ry   r   r   r   )r{   r   Úgr   rz   r   Útest_dup_isolate_real_roots!  s¤    R
ÿ
ÿ
ÿ
ÿ
ÿ
ÿÿÿ
F ÿÿ
: ÿÿ
F ÿÿ
4 0 :"4X
ÿ
6ÿ
$ÿ õ<ÿ
r•   c               	      s,  t dtƒ\‰ ‰ˆ  ˆd ˆ ˆg¡dddifddddœfgksBt‚ˆ  ˆd ˆ ˆg¡ddddœfdddifgksvt‚ˆ  ˆd ˆd ˆd ˆd ˆd ˆd g¡tdƒ tdƒ fddiftdƒ tdƒ fddd	œftdƒtdƒfdddd
œfgksüt‚ˆ  ˆd ˆd ˆd ˆd ˆd ˆd g¡tdƒ tdƒ fdddœftdƒ tdƒ fddd	œftdƒtdƒfdddœfgk�s„t‚ˆd dˆd   d ˆd  } }ˆ j| |gtddƒd�g k�sÈt‚ˆ j| |gtddƒd�tddƒtddƒfddifgk�st‚ˆ j| |gtddƒd�dddifdddifgk�s:t‚ˆ j| |gtddƒd�dddifdddifdtddƒfddifgk�s„t‚ˆ j| |gtddƒ d�g k�s¨t‚ˆ j| |gtddƒ d�tddƒ tddƒ fddifgk�sêt‚ˆ j| |gtddƒ d�dddifdddifgk�s"t‚ˆ j| |gtddƒ d�tddƒ dfddifdddifdddifgk�spt‚dˆd  d ˆd d  } }ˆ  | |g¡tdƒ tdƒ fddiftdƒ tdƒfddiftdƒtdƒfddiftdƒtdƒfddifgk�st‚ˆ j| |gdd�tddƒ tddƒ fddiftdƒ tddƒ fddiftddƒtdƒfddiftddƒtddƒfddifgk�sŒt‚ˆd d ˆd ˆd  dˆ  d  } }ˆ  | |g¡tdƒ tdƒ fdddœftdƒtdƒfddiftdƒtdƒfdddœfgk�st‚ˆd dˆ  ˆd ˆd  dˆd   dˆd    } }ˆ  | |g¡tdƒ tdƒ fdddœftdƒtdƒfdddœftdƒtdƒfddiftdƒtdƒfdddœfgk�sÌt‚ˆd dˆd   ˆd  dˆd   dˆd   dˆd   dˆd   dˆd   ˆd dˆd   dˆd   dˆd   dˆ   } }ˆ j| |gdd�dddifddddœfddddœfdddifgk�s¢t‚ˆ j| |gdd�dddiddd gfddddœddgfddddœddgfdddiddd gfgk�st‚t dtƒ\‰ ‰tt‡ ‡fd!d"„ƒ d S )#Nr   r   rC   r   r   rD   re   rE   )r   r   )r   r   r   )r   r   )r   r   r   r/   rs   r   r   ru   rF   rG   r4   T)Ústrict)r   r   r   rZ   rH   r8   r1   Fr…   r$   c                      s   ˆ   ˆd g¡S rx   )Údup_isolate_real_roots_listr   rz   r   r   r!   ¬  r"   z2test_dup_isolate_real_roots_list.<locals>.<lambda>)r   r   r—   r   r   r   r   r   )r   r”   r   rz   r   Ú test_dup_isolate_real_roots_listp  sŒ    ÿÿ,Rÿ,Rÿ
""ÿ
ÿ
*ÿ
$ ÿ
ÿ
,ÿ
2 ÿÿ
: ÿÿ
*Lÿ
:4 ÿÿ
Ž.ÿ
$ ÿÿ
r˜   c                  C   sü   t dtƒ\} }|d d }|d d }|  ||g¡tddƒtddƒfd	d
iftddƒtddƒfd
d
ifgkspt‚t dtƒ\} }td
dƒ |d  d
 }td
dƒ |d  d
 }|  ||g¡tddƒtddƒfd	d
iftddƒtddƒfd
d
ifgksøt‚d S )Nr   r   rP   éÉ   éK   r�   ée   rI   r   r   i5  ri   r   )r   r   r—   r   r   )r   r   r   r”   r   r   r   Ú#test_dup_isolate_real_roots_list_QQ¯  s    6ÿ6ÿrœ   c                  C   s*  t dtƒ\} }|  d¡dks t‚|  d¡dks2t‚|d }|  |¡dksLt‚| j|dd�dksbt‚| j|dd�dksxt‚| j|dd�dksŽt‚| j|ddd�dks¦t‚| j|ddd�dks¾t‚| j|ddd�dksÖt‚|d d }|  |¡dksôt‚| j|dd�dk�st‚| j|d	dd�dk�s&t‚d S )
Nr   r   r/   r   rs   ru   rw   r   r4   )r   r   Zdup_count_real_rootsr   r   r   r   r   Útest_dup_count_real_rootsÁ  s    r�   r   c                  C   sz   t dtƒ\} }|d }|  |tt¡dks,t‚|  |tt¡dksBt‚|d }|  |tt¡dks`t‚|  |tt¡dksvt‚d S )Nr   r   r   ©r   r   Údup_count_complex_rootsr|   r}   r   r~   r   r   r   r   r   Útest_dup_count_complex_roots_1Ú  s    r    c                  C   sö   t dtƒ\} }|d | }|  |tt¡dks0t‚|  |tt¡dksFt‚|d  | }|  |tt¡dksjt‚|  |tt¡dks€t‚|d | }|  |tt¡dks¢t‚|  |tt¡dks¸t‚|d  | }|  |tt¡dksÜt‚|  |tt¡dksòt‚d S )Nr   r   r   rž   r   r   r   r   Útest_dup_count_complex_roots_2è  s    r¡   c                  C   s¼   t dtƒ\} }|d d }|  |tt¡dks0t‚|  |tt¡dksFt‚|d | }|  |tt¡dksht‚|  |tt¡dks~t‚|d  | }|  |tt¡dks¢t‚|  |tt¡dks¸t‚d S )Nr   r   r   r   rž   r   r   r   r   Útest_dup_count_complex_roots_3   s    r¢   c                  C   sP  t dtƒ\} }|d d }|  |tt¡dks0t‚|  |tt¡dksFt‚|d | }|  |tt¡dksht‚|  |tt¡dks~t‚|d  | }|  |tt¡dks¢t‚|  |tt¡dks¸t‚|d |d  | d }|  |tt¡dksæt‚|  |tt¡dksüt‚|d |d  |d  | }|  |tt¡dk�s0t‚|  |tt¡dk�sHt‚|d  |d  |d  | }|  |tt¡dk�s~t‚|  |tt¡dk�s–t‚|d d }|  |tt¡dk�sºt‚|  |tt¡dk�sÒt‚|d | }|  |tt¡dk�söt‚|  |tt¡dk�st‚|d  | }|  |tt¡dk�s4t‚|  |tt¡dk�sLt‚d S ©Nr   r   r   r   r   r   rž   r   r   r   r   Útest_dup_count_complex_roots_4  s8    r¤   c                  C   s6  t dtƒ\} }|d d|  d }|  |tt¡dks8t‚|  |tt¡dksNt‚|d |d  d }|  |tt¡dksxt‚|  |tt¡dksŽt‚|d |d  d|  }|  |tt¡dks¼t‚|  |tt¡dksÒt‚|d d|d   d|  d }|  |tt¡dk�s
t‚|  |tt¡dk�s"t‚|d d|d   d|d   d|  }|  |tt¡dk�sbt‚|  |tt¡dk�szt‚|d d|d   |d  d|  d }|  |tt¡dk�sºt‚|  |tt¡dk�sÒt‚|d d|d   |d  d|d   d|  }|  |tt¡dk�st‚|  |tt¡dk�s2t‚d S )Nr   r   r   r   r   r   r   rž   r   r   r   r   Útest_dup_count_complex_roots_5D  s,     ((0r¥   c                  C   s6  t dtƒ\} }|d d|  d }|  |tt¡dks8t‚|  |tt¡dksNt‚|d d|d   d|  d }|  |tt¡dks„t‚|  |tt¡dksšt‚|d d|d   d|d   d|  }|  |tt¡dksØt‚|  |tt¡dksît‚|d |d  d }|  |tt¡dk�st‚|  |tt¡dk�s2t‚|d |d  d|  }|  |tt¡dk�sbt‚|  |tt¡dk�szt‚|d d|d   |d  d|  d }|  |tt¡dk�sºt‚|  |tt¡dk�sÒt‚|d d|d   |d  d|d   d|  }|  |tt¡dk�st‚|  |tt¡dk�s2t‚d S r£   rž   r   r   r   r   Útest_dup_count_complex_roots_6k  s,     ((0r¦   c                  C   s  t dtƒ\} }|d d }|  |tt¡dks0t‚|  |tt¡dksFt‚|d d|d   d|  d }|  |tt¡dks|t‚|  |tt¡dks’t‚|d d|d   d|d   d }|  |tt¡dksÌt‚|  |tt¡dksât‚|d |d  d|  d }|  |tt¡dk�st‚|  |tt¡dk�s.t‚|d |d  d|d   d|  }|  |tt¡dk�sjt‚|  |tt¡dk�s‚t‚|d |d  d|  d }|  |tt¡dk�s¶t‚|  |tt¡dk�sÎt‚|d |d  d|d   d|  }|  |tt¡dk�s
t‚|  |tt¡dk�s"t‚|d |d  d|d   d }|  |tt¡dk�sZt‚|  |tt¡dk�srt‚|d	 |d  d|d   d|  }|  |tt¡d	k�s®t‚|  |tt¡dk�sÆt‚|d d|d   d }|  |tt¡dk�söt‚|  |tt¡dk�st‚d S )
Nr   r   r   r   r   rZ   r8   r   r/   rž   r   r   r   r   Útest_dup_count_complex_roots_7’  s>     $$$ $r§   c                  C   sÆ   t dtƒ\} }|d d|d   d|  }|  |tt¡dks@t‚|  |tt¡dksVt‚|d d|d   d|d   d	|d   d|d   d
|  }|  |tt¡dks¬t‚|  |tt¡dksÂt‚d S )Nr   r   r   r   r   rH   r   r/   r8   rZ   rž   r   r   r   r   Útest_dup_count_complex_roots_8È  s    @r¨   c                  C   s\   t dtƒ\} }|d | }|  |¡dks,t‚| j|dd�dksBt‚| j|dd�dksXt‚d S )Nr   r   rD   ru   r   rs   )r   r   rŸ   r   r   r   r   r   Ú%test_dup_count_complex_roots_implicitÖ  s
    r©   c                  C   s
  t dtƒ\} }|d | }tdƒ tdƒftdƒtdƒf }}|  |||¡dksTt‚| j|||dgd�dkspt‚| j|||d	gd�dksŒt‚| j|||dd	gd�d
ksªt‚| j|||dgd�dksÆt‚| j|||dgd�dksât‚| j|||ddgd�dk�st‚| j|||d	dddgd�d
k�s&t‚| j|||dgd�dk�sDt‚| j|||dgd�dk�sbt‚| j|||ddgd�d
k�s‚t‚| j|||dddgd�dk�s¤t‚| j|||dddd	gd�dk�sÈt‚tdƒtdƒftdƒtdƒf }}| j|||dd�dk�st‚d S )Nr   r   r   r   r   ÚS)Úexcluder   ÚNr   ÚEÚWZSWZSET)r   r   r   rŸ   r   )r   r   r   r|   r}   r   r   r   Ú$test_dup_count_complex_roots_excludeâ  s$    $ $ "$"r¯   c               	   C   sæ  t dtƒ\} }|d d|  d }|  |¡ddgks8t‚dd„ | j|dd	�D ƒddgks\t‚| j|td
dƒd�tddƒtddƒ ftddƒtddƒ fftddƒtddƒftddƒtddƒffgksÈt‚| j|td
dƒd�tddƒtddƒ ftddƒtddƒ fftddƒtddƒftddƒtddƒffgk�s6t‚d|d  d|d   d|d   d|  d }|  |¡tddƒ tddƒ fdftddƒ d fd tddƒffd tddƒ ftddƒd ffdtddƒtddƒffgk�sât‚d S )!Nr   r   r   ))r   éúÿÿÿ)r8   r   )rD   )r8   r8   c                 S   s   g | ]}|  ¡ ‘qS r   )Úas_tuple)Ú.0Úrr   r   r   Ú
<listcomp>
  s     z6test_dup_isolate_complex_roots_sqf.<locals>.<listcomp>T)Zblackboxr   r   r6   rK   rq   rg   rl   r†   r   éÿ   é   ik  i  i   iÓ  r/   r   r3   rQ   r0   rS   rD   r   )r   r   Zdup_isolate_complex_roots_sqfr   r   r   r   r   r   Ú"test_dup_isolate_complex_roots_sqf  s2    ÿÿ*&ÿÿ*&ÿÿ
06 ÿÿr·   c                  C   s  t dtƒ\} }d|d  |d  d|d   d|  }|  |¡ddgdtddƒ ftddƒdffdtddƒtddƒffgfks‚t‚| j|td	d
ƒd�tddƒtddƒfdgtddƒtddƒ ftddƒtddƒ fftddƒtddƒftddƒtddƒffgfk�st‚d S )Nr   r   r   r   r   ra   rD   r   r   r   r6   éùÿÿÿrZ   r°   r/   rI   é@   rl   éA   )r   r   Zdup_isolate_all_roots_sqfr   r   r   r   r   r   Útest_dup_isolate_all_roots_sqf  s    (4ÿÿRÿÿr»   c                     sd  t dtƒ\‰ } d| d  | d  d| d   d|   ‰ˆ  ˆ¡ddgdtddƒ ftddƒdffd	fd
tddƒtddƒffd	fgfksŠt‚ˆ jˆtd	dƒd�tddƒtddƒfd	fdgtddƒtddƒ ftddƒtddƒ ffd	ftddƒtddƒftddƒtddƒffd	fgfk�st‚| d | d  d| d   d| d   |  d	 ‰tt‡ ‡fdd„ƒ d S )Nr   r   r   r   r   )ra   r   rƒ   r   r   rD   r   r6   r¸   rZ   r°   r/   rI   r¹   rl   rº   c                      s
   ˆ   ˆ¡S r   )Údup_isolate_all_rootsr   r.   r   r   r!   7  r"   z,test_dup_isolate_all_roots.<locals>.<lambda>)r   r   r¼   r   r   r   ÚNotImplementedError)r   r   r.   r   Útest_dup_isolate_all_roots(  s$    ( ÿÿÿ.*ÿÿÿ
0r¾   N)-Ú__doc__Zsympy.polys.ringsr   Zsympy.polys.domainsr   r   r   r   Zsympy.polys.polyerrorsr   r   r	   Zsympy.polys.rootisolationr
   r   r   Zsympy.testing.pytestr   r   r&   r(   r*   rB   r‚   r•   r˜   rœ   r�   r|   r}   r~   r   r    r¡   r¢   r¤   r¥   r¦   r§   r¨   r©   r¯   r·   r»   r¾   r   r   r   r   Ú<module>   s>   
		A 2O?&"1''6"