U
    	-eh                  
   @   s|  d Z ddlmZmZmZ ddl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lmZmZ ddl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"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z: ddl;m<Z< ddl=Z=ddl>m?Z? e
d\
Z@ZAZBZCZDZEZFZGZHZIdd ZJdd ZKdd ZLdd ZMdd  ZNd!d" ZOd#d$ ZPd%d& ZQd'd( ZRd)d* ZSd+d, ZTd-d. ZUd/d0 ZVd1d2 ZWd3d4 ZXd5d6 ZYd7d8 ZZd9d: Z[d;d< Z\d=d> Z]d?d@ Z^dAdB Z_dCdD Z`dEdF ZadGdH ZbdIdJ Zce:dKdL ZddMdN ZedOdP ZfdQdR ZgdSdT ZhdUdV ZidWdX ZjdS )YzBTests for algorithms for computing symbolic roots of polynomials.     )IRationalpi)S)SymbolWildsymbols)	conjugateimre)exp)rootsqrt)	Piecewise)acoscossin)ZZInterval)powsimp)Polycyclotomic_poly	intervalsnrootsrootof)
root_factorsroots_linearroots_quadraticroots_cubicroots_quarticroots_quinticroots_cyclotomicroots_binomialpreprocess_rootsroots)legendre_poly)PolynomialErrorUnsolvableFactorError)_nsort)raisesslow)verify_numericallyN)productza,b,c,d,e,q,t,x,y,zc                 C   s   t dd | D }t| d | t| d | ks6tt|t| dD ]6}| |d  | | ksF| |d  t| | ksF dS qFdS )Nc                 S   s   g | ]}|j rd ndqS )   r   is_real.0i r4   a/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/polys/tests/test_polyroots.py
<listcomp>(   s     z_check.<locals>.<listcomp>   r.   FT)sumsortedlistAssertionErrorrangelenr	   )r%   ZnrealZixr4   r4   r5   _check$   s    $r>   c                   C   s*   t tdt d ttddgks&td S )Nr7   r.   )r   r   xr   r;   r4   r4   r4   r5   test_roots_linear2   s    rA   c                  C   s  t tdtd  tddgks"tt tdtd  dt  ttdddgksRtt tdtd  d tt td d ttd d gkstt tdtd  dt  d tdttd d  dttd d  gkstttdtd  dt  d t  td dt	 t
 dt t
  t	t  t  tt t	t
d   tt
d   t	t   } t t| tt
 t	t  t	t  tt	t tt  t	t  tt  dt	 t t
d   t	t   t
 t	t  t	t  tt	t tt  t	t  tt  dt	 t t
d   t	t   gksttttd  dt  dt  t} t | tdtd  d  t dt  tdtd  d t dt  gkstttd td  d t  td  d t} t | dtd d gkstttdtd  d t} t | }|t|ks
ttd	td  d
t  d } dd | jddD dd | jddD ksXttdddD ]B\}}}t|td  |t  | } t | }|t|ksdtqdd S )Nr7   r            r?   r.   i   i  c                 S   s   g | ]}| d qS r7   nr2   wr4   r4   r5   r6   P   s     z(test_roots_quadratic.<locals>.<listcomp>T)Zradicalsc                 S   s   g | ]}| d qS rG   rH   rJ   r4   r4   r5   r6   Q   s     F)r7   )r   r?   )r   r   r@   r;   r   r   r   r>   	all_rootsaecdbyr)   r-   )frZ_a_bZ_cr%   r4   r4   r5   test_roots_quadratic6   s<    "0@N&TTT
"@
,

rW   c                  C   s   t td t td  t t} t| ttd tdt d  dttd t d td  dttd tdt d   dttd t d td   dikstd S )NrE   r7      r.   )r   r@   r   r%   r   r;   eqr4   r4   r5   test_issue_7724X   s        r[   c                     s   t dtddgt  tt  tt} tddtd d  fdd| D }t|ttt  ttkstt	t
 fdd	|D st	d S )
Nr.   rL   rC   r7      c                    s   g | ]}| t qS r4   )subsrS   r2   rU   )zr4   r5   r6   e   s     z#test_issue_8438.<locals>.<listcomp>c                 3   s.   | ]&}  tt|ijd dddkV  qdS )r7   TZchopr   N)r]   rS   r@   rI   r1   pr_   r4   r5   	<genexpr>i   s     z"test_issue_8438.<locals>.<genexpr>)r   rS   r@   Zas_exprr   r   r   setr]   r;   all)r%   postr4   ra   r5   test_issue_8438a   s    rg   c                     s   t dtd  d tt td d   } t| s6tt td dtd   d t  fddtdD }t td dtd   d t } | |kstt| stt dtd  d  } t| sttt dtd	  d  d	kstd S )
NrE      r.   r7   rX   rD   c                    s   g | ]}t  |qS r4   r   r1   rT   r4   r5   r6   p   s     z#test_issue_8285.<locals>.<listcomp>
   )r   r@   rM   r>   r;   r<   r=   )r%   ror4   rj   r5   test_issue_8285l   s    *"rm   c                  C   s   t td d t td d   } t| s0tt td dtd   d t } t| s^tt td t d  } t| stt td dtd   d t } t| std S )Nr7   rE   rD   rB   r.   )r   r@   rM   r>   r;   r%   r4   r4   r5   test_issue_8289{   s    $""ro   c                     s   t td d d td d d  td   ddt dt dtdt  dtdt  gksbttd dtd   d   fddtdD } t   | kstt|  d S )Nr.   r7   rE   rk   c                    s   g | ]}t  |qS r4   ri   r1   rb   r4   r5   r6      s     z$test_issue_14291.<locals>.<listcomp>)r   r@   rM   r   r   r;   r<   r>   )ansr4   rp   r5   test_issue_14291   s    .,rr   c                  C   s>   t td ttt  t tdd} t| }t|dks:td S )NrB   EXdomain)r   rS   r   r@   r%   r=   r;   )rZ   Zroots_dr4   r4   r5   test_issue_13340   s    "rv   c                     sx   t td td ddt    td ddt    tdd	t    d
 dt  t t } t fdd| D sttd S )NrE   rB          r7   ii  ii  i
  i  c                 3   s   | ]} |d kV  qdS r   Nr4   r^   rY   r4   r5   rc      s     z#test_issue_14522.<locals>.<genexpr>)r   r@   r   r%   re   r;   )roots_eqr4   rY   r5   test_issue_14522   s    Rr{   c                  C   s@   t ttd dtd   tt  d t} | d ts<td S )NrE   rD   r7   rB   r   )r    r   tr@   hasr;   )solr4   r4   r5   test_issue_15076   s    *r   c                  C   sb   t td dtd td   dtd   dtd td   dt  t} t| }d|ks^td S )NrE   rh   r7   rB   @   i   r   )r   r@   r   r%   r;   )rZ   rz   r4   r4   r5   test_issue_16589   s    Jr   c               	   C   sr  t tdtd  tdddgks$tt ttd dtd   dt  d tdddgks\tttd} t ttd t t| | tj tdt	 d   | tj tdt	 d   gkstt ttd d tdtjt	td d  tjt	td d  gkstt tdtd  dtd   dt  d td tjdt
dd d  dt
dd d  ksfttd  dtd   dt  d }t|dddt t|tdd  krht
dddtd	 ttd
td	 d d  d  dtd	 ttd
td	 d  d td   d t
dd dtd	 ttd
td	 d  d td   d t
dd gksnn td S )Nr7   rB   r   r.   r?   T)trigmultiple)r      rh      rL   rD   )r   r   r@   r;   r   rS   r   Halfr   r   r   r%   r   r   r   r   )rU   rZ   r4   r4   r5   test_roots_cubic   s,    $8

,
0(
"
4>>r   c                     s  t ttd tddddgks"tt ttd td  tddddgddddgddddgddddgfksltt ttd td  tddddgddddgddddgddddgfkstt ttd t t} tjttd d  tjttd d  tjtj	 g}t
| tdt
|tdks ttdd	d
d
dddgD ]\}\}}}}|dkrt| |d td |td   }n<|dkr|||d tdd |td   |td   }td |td   |td   |t  |  t t t}t fdd|D s6tq6ttt td  td  td  dtd   tdd t t  }t fdd|D sjttdddtd dtd   dtd   td   d  t t t}	t fdd|	D sttttd  td  t  t t  }tdd |D sttddtdddtddtdddtddddf}
|
D ]<t t t}tfddt||D sRtqRd S )NrE   r   rB   r?   r.   r7   key)r.   r7   rB   r   )rB   i	   )r.   r7   rB   rE   )r   rC   rB   )rC   rX   r   )rD   irC   rh      rw   c                 3   s&   | ]}  t|jd ddkV  qdS )Tr`   r   Nr]   r@   rI   )r2   ZairY   r4   r5   rc      s     z%test_roots_quartic.<locals>.<genexpr>c                 3   s    | ]}t  t|d V  qdS ry   r,   r]   r@   r1   rY   r4   r5   rc      s     r_   T)negative   rX   c                    s(   g | ] }t  t|fd ffdqS )r?   r   r   r1   )rZ   r_   r4   r5   r6      s     z&test_roots_quartic.<locals>.<listcomp>c                 s   s   | ]}t |tkV  qd S N)typer   r1   r4   r4   r5   rc      s     )rS   r_   rL   c                    s$   g | ]\}}t | | d qS )r   )r,   r]   )r2   rK   s)repr4   r5   r6      s     )r    r   r@   r;   r   r   r   r   ZeroOner9   hash	enumerater   re   qr   rS   r]   zip)lhsrhsr3   rN   rR   rP   rQ   rq   r~   ZzansZrepsr4   )rZ   r   r_   r5   test_roots_quartic   s`    "









6
$
2, <0"r   c                	   C   sX   t dd tttd td ddt    dt dt   d dt  tD rTtd S )	Nc                 s   s   | ]}t |tV  qd S r   )
isinstancer   r1   r4   r4   r5   rc      s     z#test_issue_21287.<locals>.<genexpr>rE   r7   rB   rX   r?   r.   )anyr    r   r@   r   r;   r4   r4   r4   r5   test_issue_21287   s    
<r   c                     s   t d d t d d d dt d d   d t d dt d   dt d   dt   d	 f} | D ]: tt }t|dks~tt fd
d|D s^tq^d S )NrX   r7   r.      n   rB   7   i	  i  c                 3   s,   | ]$}  t|d jdddkV  qdS )rk   gh㈵>r`   r   Nr   r^   rY   r4   r5   rc     s     z%test_roots_quintic.<locals>.<genexpr>)r@   r!   r   r=   r;   re   )Zeqsr%   r4   rY   r5   test_roots_quintic   s    
"*r   c                   C   s  t tdtdddgkstt tdtdddgks8tt tdtddtddttd d  tddttd d  gkstt tdtddt tgkstt tdtddtjttd d  tjttd d  gkstt td	tddt	t
d	  ttt
d	   t	t
d	  ttt
d	   t	t
tdd	  ttt
tdd	   t	t
tdd	  ttt
tdd	   t	t
tdd	 ttt
tdd	   t	t
tdd	 ttt
tdd	   gkstt td
tddtd d ttd d  td d ttd d  tdd ttd d  tdd ttd d  gks\tt tdtddtd d td  td d td  tdd td  tdd td  gkstt tdtdddddgkstt tdtdddddgkstt tdtddddtdd dtdd gks>tt tdtddddt tgksdtt tdtddddtdd tddd  tddd dtddd  tdd tddd  gkstt tdtdddddtdd tddgkstd S )Nr.   TZpolysr7   r?   rB   rE   rD   r\   rh   r   )factorrX   )r"   r   r@   r;   r   r   r   r   r   r   r   r   r   r4   r4   r4   r5   test_roots_cyclotomic  sz      2   *((&&	 
 


N
r   c               	   C   sL  t tdt tdgkstt tdtd  tddddgksBtt tdt d ttddgkshtdtdd d } t tdtd  d t|  | t  |  | t  | | t  | | t  gksttt ttd d  td	d
d}tdd
d}tt|td  | t}t t|td  | t}t	|d t	|d ksJtt	|d t	|d kshtt
ddddD ]X\}}}}||kr|dkrqvt|t|  ||  }	t |	}
|
t|
ksvtqvttdtd  dtd   tdt tddtdt d   ddt ddt tddtdt d   diksHtd S )NrX   r   rE   r7   rL   rk   rB   rh   a1T)Znonnegativeb1r.   )r.   r7   )r?   r.   )r7   rB   rE   rX   rw   r?   )r#   r   r@   r;   r   r   r>   r   r   r   r-   r)   r%   rS   r   )Ar   r   Zr0r1rN   rR   r   rI   rb   rq   r4   r4   r5   test_roots_binomial7  s8    &&.      r   c                  C   sl  t t td  t t } tt| t\}}|dks6t|tt t td  t t tks\ttd td  td td   tt  t  } tt| t\}}|dt kst|ttd td  t t  tksttd td  td td   t  } tt| t\}}|dt kst|ttd td  t  tks<ttd td  tt  t  } tt| t\}}|dt ks|t|ttd t t  tksttd td  t  } tt| t\}}|dt kst|ttd t  tksttd\}}}}d|d  |d  |d  d| t |d	  |d	  |d
   d|d  |d  |d  td  |d   d|d  |d  |d  td  |d   d|d  |d  |d  td  |d   d|d  |d  |d  td  |d   d|d  |d  |d  td  d|d    d| | |d	  td	  d|d    d|d  td  d  } tt| t\}}|d| | ||d   kst|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stttd  td t	t  tt
tt	tf d!} ttd  t	t tt
t	t d!}t| t|fkshtd S )"Nr7   r.   rB   E,F,J,L [r|)s2^ rh   rw       83ll8r\         ]$=,y rD   r      /@:rX   rk      D!^ rE   q 
    P   y   q    id i B i߰l   ul   /1g&l   g l   FW&k rt   )rN   rS   r@   rR   r$   r   r;   rP   r   r   r   )rT   ZcoeffZpolyEFJLgr4   r4   r5   test_roots_preprocessingX  sh    &,&$$ "****.&
"<

0$r   c                  C   s  t dti kstt tttjdiks*tt td ttjdiksFtt td td  td   ttd dtddtddikstt dt d ttdddikstt dt d d ttdddikstt dt d d ttdddikstt dt d d ttdddiks(tt td d ttdtjdtj dt diks\tt td d d ttdtjdtj dt dikstt dt d d  ttdddikstt dt d d  ttd	ddikstt dt d d  ttdddikstt dt d d  ttd	ddiksLtt dt d d  ttdddiksztt dt d d  ttd	ddikstt t	t t
 d  tt
t	 dikstt t	t t
 d  tt
 t	 dikstt td t	 d t  t	 tt	dtjdiks6tt td dtd   d ttjdtjdiksjtt td
 dtd   dtd   td  ttjddtd dtjddtd dikstt td d ttdd ttd d  dtdd ttd d  dtd d ttd d  dtd d ttd d  dtjdtj dtdt diksntdtd  dtd   dtd   dtd   dtd
   dtd   dtd   dtd   } t | tjdtd dtddtdddtd	ddtdddtdddiks tt t	t
 t t t	t
 t t  tt	t
 t t t	t
 t  diksltt td td  t d tddi kstt td td  td   tddtd dtddtddikstt td td  td  td   tddtd dtddtddtddiks<tt td dtd   dt  d ttd ddt ddt dikstt td dtd   dt  d tdddt ddt dtd dikstt td t td dtd   dt  d  ttjdtjdtd ddt ddt diks6ttjtdd }}dtd d | }d| d }|d }tdt d }|| }| | }t td td  t d tdd| | | d| | ||  | d| | ||  | diksttd dt  d tdtd  dt  tdt d } dd dD \}	}
td}t | t|	|
tddt |    d|	|
tddt |    d|	|
tddt |    d|	|
tddt |    diksttd td  td  t d } dd d D \}}}t | t| |d|   t||d|   |   d| |d|   t||d|   |   d| |d|   t||d|   |   d| |d|   t||d|   |   dik	sttd dt td   ddt  dtd   t  t dtd   } t | ttjdtjtjt  tjtddt  td  dtd     dtjtjt  tjtddt  td  dtd     dik
stt t	t
 t td  dtd   dt  d tddi k
stt t	t
 t td  dtd   dt  d tddi kstt td d td!d"tjdtj diksBtt td d td#d"tdt diksltt td td  ttjdtj dikstt td td  td$d% d&tjdikstt td d td!dd'tj tjgkstt td d td#dd'tt gksttd(dd)\}}td || d  dt ||   d }t |td*d"d||  diksxtt td tdd+tjtjtjgkstt d,tdd+g ksttd
 td  td  td  td  t d } t | t ttd  ttd  dt tttdd  tttdd  dt tttdd  tttdd  dtttd  ttd  dttttdd  tttdd  dttttdd  tttdd  diksttd d | d   }t |t ttd  ttd  dt tttdd  tttdd  dt tttdd  tttdd  dtttd  ttd  dttttdd  tttdd  dttttdd  tttdd  dt dtdikstt td d-t  d }d.d |D d/ }d0d
td1  }|dt|d d d2t|d  ksNttddtd  td  d3dtd  td   td d t  d td4d5}t |dtd dddtd  dtd d diksttd6td  d7td td   d8td   d0td td   d9td   d:td td   d;td   d<td td   d=td t  d=t  d> td4d5}t |td d dddtd  ddtd dd?dtd  dd	dtd  dikstttd dtd   d
td td   dtd t  d@t  dA dAtd  td4d5}t |dtd d ddtd d ddtd d diksxtt tttd d d td4d5td tddtj tdt d    dtd tddtj tdt d    dtd tdd dikstd S )BNr.   r   r7   rB   rE   r?   rX   rk   rC   rD   rh   i i  i  i  i     r\   i  r   r   F)ZcubicsrL   T!      c                 S   s   g | ]}t | qS r4   r   r^   r4   r4   r5   r6     s   ztest_roots0.<locals>.<listcomp>))r   r   )r.   r   c                 S   s   g | ]}t | qS r4   r   r^   r4   r4   r5   r6     s     ))r.   rE   )r.   rh   )rX   rh   Zfilterr   c                 S   s   | j S r   )Zis_positive)rU   r4   r4   r5   <lambda>      ztest_roots0.<locals>.<lambda>)	predicate)r   r   za, b)realRr   i  (   c                 S   s   g | ]}|j r|qS r4   r/   )r2   rxr4   r4   r5   r6   *  s      r   l   i2  r   r   rs   rt   )            }   -            r      r   )r%   r@   r;   r   r   expandr   r   r   rN   rR   ZNegativeOner   rP   rQ   r   r]   r_   rS   r   r   r   r   r   r   )rT   Zr1_2Zr1_3Zx0x1Zx2Zx3Zx4Zx5Zr13_20Zr1_20s2Zr1_4Zr1_8Zr5_8arbrrb   r   rU   Z	real_rootcrrZ   r4   r4   r5   test_roots0  s   D$((*48......,.44,&
           :


(     L, 
,$
J(
0(

    <
     ( ( ( ( D 8 8 @@.*.  
,(($(0 ( (  & & 	 ( (  & &    
*P<@

 0   D
 B ,*  r   c                     s  t d\} }}}d | | |  | |  |  }d | |||  |    |  | | || |   | | ||   }tt| ddgksttt| ddgkstt d\}}}}	}
}}|| ||  ||  |	| |
  |
 |	 | }|| | | |
||  |
  |	|	 ||   }tt|| | dddgksVtd dd   d  tt  }tdd  fd	d
|D D rtdS )z6Just test that calculating these roots does not hang. z	a,b,c,d,xr7   r.   zzz,yy,xx,zy,zx,yx,krB   rh   c                 s   s   | ]
}|V  qd S r   r4   r1   r4   r4   r5   rc   T  s     z"test_roots_slow.<locals>.<genexpr>c                    s    g | ]}  |jd dqS )Tr`   )r]   rI   )r2   rirT   r@   r4   r5   r6   T  s     z#test_roots_slow.<locals>.<listcomp>N)r   r:   r%   valuesr;   keysr   )rN   rR   rP   rQ   f1f2zzyyZxxZzyZzxZyxke1e2r   r4   r   r5   test_roots_slow@  s    $H00&r   c                  C   s   t td t d tdd} t td t d tdd}t| |D ]\}}t|| dk s>tq>td dtd	 td
   ddtd  td   ddtd d   }t |dd} d}t| |D ]\}}t|| dk stqd S )Nr7   r.   Tr   g      ?g-q=rE   g      @g       @rB   g     S@g      8@g      b@g      "@)g؋~)g)cg3!	@g
 @绽|=)r%   r@   r   absr;   r   )R1R2r   r2rT   r4   r4   r5   test_roots_inexactW  s    2r   c                  C   s(  t d\} }}}d| d  |d  |d  d| t | d  |d  |d   d| d	  |d
  |d	  td
  |d   d| d  |d  |d  td  |d   d| d  |d  |d  td  |d   d| d  |d  |d  td  |d	   d| d
  |d	  |d
  td	  d|d    d|  | |d  td  d|d
    d|d  td  d  }t|ti kstt| tdd}ddddddd d!g}td"}||  | ||d
   }t|t|kstt||D ]8\}	}
|	|}|d k	rt	|| |
 d#k stqd S )$Nr   r   rh   rw   r   r\   r   r   rD   r7   r   r   rX   rB   rk   r   rE   r   r   r   r   r   r   Tr   g?|YcgOXLzGX@g'I^g@g|۰n@gdZw@g5`e@gS$Ȫ@gJm@rK   r   )
r   r@   r%   r;   evalfr   r=   r   matchr   )r   r   r   r   rT   r   r   rK   rb   r   r   r   r4   r4   r5   test_roots_preprocessedi  s@    "****.&
   
r   c                   C   s   t td dt  d ddddiks(tt td dt  d ddddiksPtt td dtd   td  dt  d ddddikstttd	d
  d S )Nr7   r.   FstrictTrD   rX   rB   c                   S   s0   t td dtd   td  dt  d ddS )NrD   r7   rX   rB   Tr   )r%   r@   r4   r4   r4   r5   r     r   z#test_roots_strict.<locals>.<lambda>)r%   r@   r;   r*   r(   r4   r4   r4   r5   test_roots_strict  s    ((<r   c            	      C   s   ddt   dt d   dt d   dt d   } t| d	d
\}}t| }t| d	d}dd |D }dd |D }|| }dd |D }t|dd d}t|dd d}||fD ]D}t||D ]4\}}|jr||kstqt|t	|f|kstqqd S )Nipi  i  r7   i
  rB   1   rE   T)re   r   c                 S   s   g | ]\\}}}t ||qS r4   r   r2   rN   rR   _r4   r4   r5   r6     s    
 z$test_roots_mixed.<locals>.<listcomp>c                 S   s8   g | ]0\\}}}t t|t|t t|t| qS r4   )r   r   r
   r   r4   r4   r5   r6     s    c                 S   s   g | ]}|  qS r4   )r   r^   r4   r4   r5   r6     s     c                 S   s   |   S r   sort_keyr@   r4   r4   r5   r     r   z"test_roots_mixed.<locals>.<lambda>r   c                 S   s   |   S r   r   r  r4   r4   r5   r     r   )
r@   r   r   r%   r9   r   r0   r;   r   r
   )	rT   _reZ_imZ_nrootsZ_srootsZ
_intervalsZ_rootsr3   rU   r4   r4   r5   test_roots_mixed  s"    0r  c                
   C   s  t tdttdtgkstt ttttttgks<tt td d ttd td gksbtt td t tttt ttt gkstt td d d td td td td tt tt tt tt gkstt ttd d tddttd tttd tttd d tgks(tt dtd  dtd   dtd   td  td	dtttd dtd   dtd   d gkstd S )
Nr.   r7   rE   r   r   rh   r   rD   Q)r   r   r@   r;   rS   r   r   r4   r4   r4   r5   test_root_factors  s    &.2*
4(r  c               A      s   d} t | tdd ttjj fdd  j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/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIg@kstd S )JNr   Tr   c                      s    j dddS )NrB   rX   )rI   Zmaxsteps)r   r4   rp   r4   r5   r     r   ztest_nroots1.<locals>.<lambda>rB   rH   c                 S   s   g | ]}t |qS r4   strr^   r4   r4   r5   r6     s     z test_nroots1.<locals>.<listcomp>z-0.999z-0.996z-0.991z-0.983z-0.973z-0.961z-0.946z-0.930z-0.911z-0.889z-0.866z-0.841z-0.813z-0.784z-0.753z-0.720z-0.685z-0.649z-0.611z-0.572z-0.531z-0.489z-0.446z-0.402z-0.357z-0.311z-0.265z-0.217z-0.170z-0.121z-0.0730z-0.0243z0.0243z0.0730z0.121z0.170z0.217z0.265z0.311z0.357z0.402z0.446z0.489z0.531z0.572z0.611z0.649z0.685z0.720z0.753z0.784z0.813z0.841z0.866z0.889z0.911z0.930z0.946z0.961z0.973z0.983z0.991z0.996z0.999)r&   r@   r*   mpmathmpZNoConvergencer   r;   )rI   r%   r4   rp   r5   test_nroots1  s                                                     r  c                  C   sv   t td dt  d t} | jdd}dd |D ddd	d
dgksFt| jdd}dd |D dddddgksrtd S )NrX   rB   r.   rH   c                 S   s   g | ]}t |qS r4   r  r^   r4   r4   r5   r6     s     z test_nroots2.<locals>.<listcomp>z-0.332z-0.839 - 0.944*Iz-0.839 + 0.944*Iz1.01 - 0.937*Iz1.01 + 0.937*Ic                 S   s   g | ]}t |qS r4   r  r^   r4   r4   r5   r6     s     z-0.33199z-0.83907 - 0.94385*Iz-0.83907 + 0.94385*Iz1.0051 - 0.93726*Iz1.0051 + 0.93726*I)r   r@   r   r;   )rb   r%   r4   r4   r5   test_nroots2  s      r  c                   C   s>   t tttd td tt  t t tdddks:td S )NrB   r7   T)Z	composite)r=   r%   r   rS   r   r@   r;   r4   r4   r4   r5   test_roots_composite  s    r  c                      s.   t td t t d  tt fdd d S )NrB   r.   c                      s   t  S r   rn   r4   rY   r4   r5   r     r   z"test_issue_19113.<locals>.<lambda>)r   r@   r*   r'   r4   r4   rY   r5   test_issue_19113  s    r  c                   C   s>   t ddddt  d  d dt  dgd	d
ddgks:td S )Nr.   rC   r   rE   r7   rh   r   r   Tr   )r%   r   r;   r4   r4   r4   r5   test_issue_17454  s    r  c                   C   sN   t td t dgkstt td d t dtdd   gksJtd S )Nl          l       rB   rE   r7   )r   r@   Z
real_rootsr;   r   r4   r4   r4   r5   test_issue_20913  s    r  c               	   C   s   t dd} dt |  td d|    }ttttd  td d  t|d| dtdt   d d|dtdt   d dikstd S )Nr.   rB   r?   rX   r7   )r   rN   r%   r   r@   r   r   r;   )rO   rU   r4   r4   r5   test_issue_22768  s    
    r  )k__doc__Zsympy.core.numbersr   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   r   Z$sympy.functions.elementary.complexesr	   r
   r   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   r   Z$sympy.functions.elementary.piecewiser   Z(sympy.functions.elementary.trigonometricr   r   r   Zsympy.polys.domains.integerringr   Zsympy.sets.setsr   Zsympy.simplify.powsimpr   Zsympy.polysr   r   r   r   r   Zsympy.polys.polyrootsr   r   r   r   r    r!   r"   r#   r$   r%   Zsympy.polys.orthopolysr&   Zsympy.polys.polyerrorsr'   r(   Zsympy.polys.polyutilsr)   Zsympy.testing.pytestr*   r+   Zsympy.core.randomr,   r	  	itertoolsr-   rN   rR   rP   rQ   rO   r   r|   r@   rS   r_   r>   rA   rW   r[   rg   rm   ro   rr   rv   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r4   r4   r4   r5   <module>   sp   0"		:
0!< -
