a
    {þdT  ã                   @   s"  d Z ddlmZ ddlm  mZ ddlmZmZmZm	Z	m
Z ddlmZmZ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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)m*Z* ddl+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 dd„ Z4dd„ Z5dd„ Z6dd„ Z7dd„ Z8dd„ Z9dd „ Z:d!d"„ Z;e*d#d$„ ƒZ<d%d&„ Z=d'd(„ Z>d)d*„ Z?d+d,„ Z@d-d.„ ZAd/d0„ ZBd1d2„ ZCd3d4„ ZDd5d6„ ZEd7d8„ ZFd9d:„ ZGd;d<„ ZHd=d>„ ZId?d@„ ZJdAdB„ ZKdCdD„ ZLdEdF„ ZMdGdH„ ZNdIdJ„ ZOdKdL„ ZPe*dMdN„ ƒZQdOdP„ ZRdQdR„ ZSdS )Sz@Tests for the implementation of RootOf class and related tools. é    )ÚPolyN)ÚrootofÚRootOfÚCRootOfÚRootSumÚ_pure_key_dict)ÚMultivariatePolynomialErrorÚGeneratorsNeededÚPolynomialError)ÚFunctionÚLambda)ÚFloatÚIÚRational)ÚEq)ÚS)ÚexpÚlog)Úsqrt)Útan)ÚIntegral)Úlegendre_poly)Úsolve)ÚraisesÚslow)Ú	unchanged)ÚaÚbÚxÚyÚzÚrc                  C   s   t tdƒdksJ ‚t tdƒdks$J ‚t ttjƒdks8J ‚t td dƒdksNJ ‚t td dƒdksdJ ‚t td dƒdkszJ ‚t td dƒdksJ ‚t td dt  d dƒdttdƒ  ks¾J ‚t td dt  d dƒdttdƒ  ksìJ ‚t td dt  d dƒdttdƒ  ksJ ‚t td dt  d dƒdttdƒ  ksLJ ‚t td dt  d ddd} t| tƒd	u s~J ‚t td dt  d ddd} t| tƒd	u s°J ‚t td dt  d ddd} t| tƒd	u sâJ ‚t td dt  d ddd} t| tƒd	u sJ ‚t td td  ddddks8J ‚t td td  ddddks\J ‚t td td  ddddks€J ‚t td td  ddddks¤J ‚t td td  dd	ddksÈJ ‚t td td  dd	ddksìJ ‚t td td  dd	ddksJ ‚t td td  dd	ddks4J ‚t td td t d  dƒt td t d dƒksnJ ‚t td td t d  dƒdks–J ‚t td td t d  dƒt td t d dƒksÐJ ‚t td td t d  dƒt td t d dƒks
J ‚t td td t d  dƒt td t d dƒksDJ ‚t td td t d  dƒt td t d dƒks~J ‚t td td t d  d
ƒdks¦J ‚t td td t d  dƒt td t d dƒksàJ ‚t td dtd   dƒd
ksJ ‚t td dtd   dƒdks(J ‚t td dtd   dƒdksLJ ‚t td dtd   dƒdkspJ ‚tt	dd„ ƒ tt	dd„ ƒ tt
dd„ ƒ tt
dd„ ƒ tt
dd„ ƒ tt
dd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t ttt tƒdƒtksDJ ‚t ttd t tƒdƒttƒ kslJ ‚t ttd t tƒdƒttƒks’J ‚t ttd t tƒdƒttddƒ ks¾J ‚t ttd  tt  dt  tdƒdksìJ ‚ttdd„ ƒ t td t d dƒjd	u sJ ‚d S )Nr   éÿÿÿÿé   é   é   éþÿÿÿF©ZradicalsTéýÿÿÿéüÿÿÿé   c                   S   s
   t ddƒS ©Nr   ©r   © r-   r-   úk/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/polys/tests/test_rootoftools.pyÚ<lambda>U   ó    z&test_CRootOf___new__.<locals>.<lambda>c                   S   s
   t ddƒS ©Nr#   r   r,   r-   r-   r-   r.   r/   V   r0   c                   S   s   t tdtƒdƒS r+   ©r   r   r   r-   r-   r-   r.   r/   X   r0   c                   S   s   t tdtƒdƒS r1   r2   r-   r-   r-   r.   r/   Y   r0   c                   S   s   t tt dƒS r+   ©r   r   r   r-   r-   r-   r.   r/   Z   r0   c                   S   s   t ttƒdƒS r+   )r   r   r   r-   r-   r-   r.   r/   \   r0   c                   S   s   t td t tdƒ dƒS ©Nr%   r$   r   )r   r   r   r-   r-   r-   r.   r/   ^   r0   c                   S   s   t td t t dƒS )Nr%   r   )r   r   r   r-   r-   r-   r.   r/   _   r0   c                   S   s   t td d dƒS )Nr$   r#   r)   ©r   r   r-   r-   r-   r.   r/   a   r0   c                   S   s   t td d dƒS )Nr$   r#   r(   r5   r-   r-   r-   r.   r/   b   r0   c                   S   s   t td d dƒS ©Nr$   r#   r5   r-   r-   r-   r.   r/   c   r0   c                   S   s   t td d dƒS )Nr$   r#   r%   r5   r-   r-   r-   r.   r/   d   r0   c                   S   s   t td d tƒS r6   r5   r-   r-   r-   r.   r/   e   r0   c                   S   s   t td t dt  tdƒS r4   r3   r-   r-   r-   r.   r/   o   r0   )r   r   r   ZZeror   r   Ú
isinstancer   r   r	   r
   ÚNotImplementedErrorÚ
IndexErrorÚ
ValueErrorr   r   r   Úis_commutative©r!   r-   r-   r.   Útest_CRootOf___new__    sv    ..00$$$$$$$$:(::::(:$$$$(&,.r=   c                  C   sB   t td t d dƒ} | js J ‚| jtƒ ks0J ‚ttdd„ ƒ d S )Nr%   r   c                   S   s    t ttd tt  d tƒdƒS ©Nr%   r#   r   )r   r   r   r   r-   r-   r-   r.   r/   |   r0   z)test_CRootOf_attributes.<locals>.<lambda>)r   r   Z	is_numberÚfree_symbolsÚsetr   r8   r<   r-   r-   r.   Útest_CRootOf_attributest   s    
rA   c                   C   s  t td t d dƒt td t d dƒkdu s4J ‚t td t d dƒt td t d dƒkdu shJ ‚t td t d dƒt td t d dƒkdu sœJ ‚t td t d dƒt td t d dƒkdu sÐJ ‚t td t d dƒt td t d dƒkdu sJ ‚t td t d dƒt td t d dƒkdu s<J ‚t td t d dƒt td t d dƒkdu srJ ‚t td t d dƒt td t d dƒkdu s¨J ‚t td t d dƒt td t d dƒkdu sÞJ ‚t td t d dƒt td t d dƒkdu sJ ‚d S ©Nr%   r   Tr#   Fr$   r3   r-   r-   r-   r.   Útest_CRootOf___eq__   s    444466666rC   c                     st  t dƒ} td t d ‰ tˆ dƒ}tˆ dƒ}t||ƒtju s@J ‚t||ƒtju sTJ ‚tt|tƒsdJ ‚t|dƒtju sxJ ‚t|tjƒtju sŽJ ‚t|t	ƒtju s¢J ‚tt|| dƒƒs¶J ‚t
ˆ ƒ‰ˆD ]}|jrÂt||ƒtju sÂJ ‚qÂtˆ dƒ}ˆD ]}|jrðt||ƒtju sðJ ‚qðtd t d ‰ t
ˆ ƒ‰‡ ‡fdd„tdƒD ƒ d¡dksPJ ‚ttˆ dƒdtj ƒd	kspJ ‚d S )
NÚfr%   r$   r#   r   c                    s&   g | ]}ˆD ]}t tˆ |ƒ|ƒ‘qqS r-   )r   r   )Ú.0ÚiÚj©ÚeqZsolr-   r.   Ú
<listcomp>£   r0   z,test_CRootOf___eval_Eq__.<locals>.<listcomp>TF)r   r   r   r   r   ÚfalseÚtruer   ÚInfinityr   r   Úis_realÚrangeÚcountZImaginaryUnit)rD   r!   Úr1Úsr-   rH   r.   Útest_CRootOf___eval_Eq__   s6    


ÿÿ
rS   c                   C   sd   t td t d dƒjdu s J ‚t td t d dƒjdu s@J ‚t td t d dƒjdu s`J ‚d S rB   )r   r   rN   r-   r-   r-   r.   Útest_CRootOf_is_real¨   s      rT   c                   C   s$   t td t d dƒjdu s J ‚d S )Nr%   r   T)r   r   Z
is_complexr-   r-   r-   r.   Útest_CRootOf_is_complex®   s    rU   c                   C   s<   t td t d dƒ tt¡t td t d dƒks8J ‚d S r>   )r   r   Úsubsr   r-   r-   r-   r.   Útest_CRootOf_subs²   s    rW   c                   C   sL   t td t d dƒ t¡dks$J ‚t td t d dƒ t¡dksHJ ‚d S r>   )r   r   Údiffr   r-   r-   r-   r.   Útest_CRootOf_diff¶   s    $rY   c                  C   sÔ  t td t d dƒjdd} |  tdƒ¡s0J ‚t td t d dƒjdd ¡ \}}| tdƒ¡shJ ‚| tdƒ ¡s|J ‚t td t d d	ƒjdd ¡ \}}| tdƒ¡s´J ‚| tdƒ¡sÆJ ‚td
tdd}dd„ | ¡ D ƒ}|g d¢ksöJ ‚t td dt  d dƒjdd}| tdƒ¡s,J ‚t td dt  d dƒjdd ¡ \}}| tdƒ¡sjJ ‚| tdƒ¡s~J ‚t td dt  d d	ƒjdd ¡ \}}| tdƒ¡s¼J ‚| tdƒ¡sÐJ ‚t td dt  d dƒjdd ¡ \}}| tdƒ¡sJ ‚| tdƒ¡s"J ‚t td dt  d d
ƒjdd ¡ \}}| tdƒ¡s`J ‚| tdƒ¡stJ ‚tt td d	td
   td  d dƒ 	d¡ƒdks®J ‚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, }t |dƒ 	d	¡ ¡ \}}t |d	ƒ 	d	¡ ¡ \}}	||kspJ ‚||	k s~J ‚||	 ksŽJ ‚t td-tƒd$ƒ}
|
 	d	¡|
 	d.¡ 	d	¡ks¾J ‚t td	 d dd/d0}t td	 d dd/d0}| 	d
¡td1d
ƒt
 ksJ ‚| 	d
¡td2d
ƒt
 ks&J ‚tt d
td  d3td   dtd	   d$ dƒ 	d¡ƒd4kshJ ‚td5td&  d6td
   d7td	   d dƒ}| d	¡s¦J ‚tttd3 d8td9   d:td   d;td   d<td"   d=td&   d>td
   d?td	   d@ dƒ 	d	¡ƒdAks J ‚tttd
 dtd	   d dƒ 	d	¡ƒdBk sRJ ‚dCd„ tdƒD ƒ}
|
d  ¡  |
D ]Z}| ¡ }| 	d	¡ || ¡ ksœJ ‚| ¡  || ¡ ks¶J ‚||j|jŽ kstJ ‚qtd S )DNr%   r   é   ©Únz-1.2134116627622296341r#   z0.60670583138111481707z1.45061224918844152650r$   r*   T©Úpolysc                 S   s   g | ]}t | d ¡ƒ‘qS ©é   ©Ústrr\   ©rE   r!   r-   r-   r.   rJ   Ì   r0   z&test_CRootOf_evalf.<locals>.<listcomp>©z-0.86113631159405258z-0.33998104358485626z0.33998104358485626z0.86113631159405258é   é   z-1.84208596619025438271z-0.351854240827371999559z-1.709561043370328882010z+1.709561043370328882010z+1.272897223922499190910z-0.719798681483861386681z+0.719798681483861386681l       @ z147.iñ é   iÌÝ: é
   iµÑ é	   izgñé   i`jHé   i lšé   i èêi@äB i <¶ i ü i - i   é@   éd   Fr'   g      ð¿g      ð?é   z-0.976i`b iÀ  éT   é    é   iü  i@  iVš  i  i\‡ i€ã i‘e z-3.4*Igš™™™™™Ù?c                 S   s"   g | ]}t td  t d  |ƒ‘qS )r%   )r   r   ©rE   rF   r-   r-   r.   rJ     r0   )r   r   ÚevalfÚ
epsilon_eqr   Zas_real_imagr   Ú
real_rootsrb   r\   r   r   Z_eval_evalfr   ÚabsrO   Ú_resetÚ_get_intervalÚfuncÚargs)ÚrealÚreZimÚpÚrootsrI   r   r   ÚcÚdr!   Úr0rQ   ÚrirF   r-   r-   r.   Útest_CRootOf_evalf»   s¨    &&"****:.
ÿ
ÿ
ÿ
ÿ
þ
þþþ B..
ÿ
ÿ
ÿ
ÿþþþþ
2
r„   c                  C   sd   t td dt  d dƒ} |  ¡  |  ¡ }t td dt  d dƒ} |  ¡  |  ¡ }||ks`J ‚d S )Nre   rf   r#   )r   r   r\   ry   )r!   r   r   r-   r-   r.   Útest_CRootOf_evalf_caching_bug  s    r…   c                  C   sà   t td t d ƒ ¡ ttd td  d dƒgks8J ‚t td t d ƒjddttd td  d dƒgkstJ ‚t dtd	  d
td   dtd   dt  d tdd} t | ¡tdƒtdƒtdƒtdƒd gksÜJ ‚d S )Nre   r#   r%   r$   r   Fr'   r(   r*   rh   rf   rl   ZZZ)Údomainr"   )r   r   rv   r   r   r   ©r~   r-   r-   r.   Útest_CRootOf_real_roots!  s    8ÿ:rˆ   c                	   C   s:  t td t d ƒ ¡ ttd td  d dƒtddƒtdƒt d  tddƒtdƒt d  ttd td  d dƒttd td  d dƒgks˜J ‚t td t d ƒjddttd td  d dƒttd t d dddttd t d dddttd td  d dƒttd td  d dƒgks6J ‚d S )	Nre   r#   r%   r$   r   r"   Fr'   )r   r   Ú	all_rootsr   r   r   r   r-   r-   r-   r.   Útest_CRootOf_all_roots+  s    û
ûrŠ   c                  C   sZ   t dtdd} dd„ |  ¡ D ƒ}|D ]}t|tƒs$J ‚q$dd„ |D ƒ}|g d¢ksVJ ‚d S )Nr*   Tr]   c                 S   s   g | ]}|j d d‘qS )é   r[   ©Zeval_rationalrc   r-   r-   r.   rJ   ?  r0   z.test_CRootOf_eval_rational.<locals>.<listcomp>c                 S   s   g | ]}t | d ¡ƒ‘qS r_   ra   )rE   Úrootr-   r-   r.   rJ   B  r0   rd   )r   r   rv   r7   r   )r~   r   r   r-   r-   r.   Útest_CRootOf_eval_rational=  s    rŽ   c                  C   sX  t td dt  d ƒ} t ¡  t| dƒ}|jtjvs:J ‚|jtjvsJJ ‚| ¡  |jtjv sbJ ‚|jtjvsrJ ‚t ¡  t| dƒ}|jtjvs”J ‚|jtjvs¤J ‚| ¡  |jtjv s¼J ‚|jtjv sÌJ ‚t td d td d  ƒ} t ¡  t| dƒ}|jtjv sJ ‚|jtjvsJ ‚t ¡  t| dƒ}|jtjv sBJ ‚|jtjv sTJ ‚d S )Nr%   r$   r   r#   )	r   r   r   Úclear_cacheZpolyÚrootoftoolsZ_reals_cacheZ_complexes_cachert   )rD   r!   r-   r-   r.   Útest_CRootOf_lazyK  s0    



r‘   c                  C   sÒ  t d t  d } ttttt  ƒƒ}t| |ƒ}t|tƒdu s>J ‚t| d |ƒdt| |ƒ ks^J ‚tt d | d  |ƒtdt  ƒdt| |ƒ  ks’J ‚ttt d | d  |ƒƒttdt  ƒdt| |ƒ  ƒksÎJ ‚ttdd„ ƒ tt	dd„ ƒ t| t
ƒt| tt t
t ƒƒƒksJ ‚t| tƒt| tt tt ƒƒƒks2J ‚tt| dd	tƒdu sNJ ‚t| ƒd
ks`J ‚t| tt t ƒƒd
kszJ ‚t| tt t d ƒƒdks˜J ‚t| tt dƒƒdks²J ‚t| tt dƒƒdksÌJ ‚t| dd	jdu säJ ‚t| tt dt t d   ƒƒtddƒksJ ‚t| tt tt t d   ƒƒtddƒt ks@J ‚tt d d tt dt d  ƒt ƒdkslJ ‚tt d t tt dt d  ƒt ƒdt ksœJ ‚tt d d tt tt d  ƒt ƒdt ksÌJ ‚tt d t tt tt d  ƒt ƒdt t ks J ‚tt d d tt t
t ƒƒddt
dƒt
dƒ ks6J ‚tt d tt   td  tt ƒtt d t  d tt ttt  ƒƒƒks€J ‚ttd t d  tt   d tt ƒtt d t  d tt tt t ƒƒƒksÎJ ‚d S )Nr%   Tr$   rk   c                   S   s   t td t t ƒS ©Nr%   )r   r   r   r-   r-   r-   r.   r/   …  r0   z&test_RootSum___new__.<locals>.<lambda>c                   S   s   t td d dd„ ƒS )Nr$   r%   c                 S   s   | S ©Nr-   )r   r-   r-   r.   r/   †  r0   z8test_RootSum___new__.<locals>.<lambda>.<locals>.<lambda>)r   r   r-   r-   r-   r.   r/   †  r0   F)Úautor   r&   r#   rl   rg   )Z	quadraticr"   )r   r   r!   r   r   r7   Úhashr   r   r:   r   r;   r   r   r    r   r   )rD   ÚgrR   r-   r-   r.   Útest_RootSum___new__w  sF    
 4<$$,0,004ÿÿ
"ÿ
""ÿr—   c                   C   s”   t td t d ttttƒƒƒjtƒ ks,J ‚t td t d ttttt ƒƒƒjthks\J ‚t td t t ttttt ƒƒtƒjtthksJ ‚d S r’   )	r   r   r   r!   r   r?   r@   r   r   r-   r-   r-   r.   Útest_RootSum_free_symbols¨  s    ,0 ÿÿr˜   c                  C   sâ   t tttƒƒ} ttd t d | ƒttd t d | ƒkdu sBJ ‚ttd t d | ƒttd t d | ƒkdu svJ ‚ttd t d | ƒttd t d | ƒkdu sªJ ‚ttd t d | ƒttd t d | ƒkdu sÞJ ‚d S )Nr%   r#   Tr$   F)r   r   r   r   r   ©rD   r-   r-   r.   Útest_RootSum___eq__¯  s
    444rš   c                  C   s–   t td d tƒ} t| t ƒdu s$J ‚|  ¡ tt ƒttƒ ksBJ ‚t td t ttƒ} t| t ƒdu shJ ‚|  ¡ ttt ƒ ƒttt ƒƒ ks’J ‚d S )Nr$   r#   T)r   r   r   r7   Zdoitr   r   r   ©Úrsr-   r-   r.   Útest_RootSum_doit¹  s    r   c                  C   sr   t td d tƒ} | jddd tdƒ¡s.J ‚| jddd tdƒ¡sJJ ‚t td t ttƒ} |  ¡ | ksnJ ‚d S )	Nr$   r#   rZ   T)r\   Zchopz1.0806046117362794348é   z1.08060461173628)r   r   r   rt   ru   r   r   r›   r-   r-   r.   Útest_RootSum_evalfÅ  s
    rŸ   c                  C   sZ   t d t  d } ttttt  ƒƒ}tttttt  ƒ ƒ}t| |ƒ t ¡t| |ƒksVJ ‚d S r’   )r   r   r!   r   r   rX   )rD   r–   Úhr-   r-   r.   Útest_RootSum_diffÐ  s    r¡   c                  C   sˆ   t d t  d } ttttt  ƒƒ}td t d }ttttt ƒƒ}t| |ƒ td¡t| |ƒksdJ ‚t| |ƒ t t¡t||ƒks„J ‚d S )Nr%   r#   )r   r   r!   r   r   r   rV   )rD   r–   ÚFÚGr-   r-   r.   Útest_RootSum_subsÙ  s     r¤   c               	   C   s$  t td t d ttttt  ƒƒdt d td t d  ksDJ ‚dtd  dtd   dt  d } ttttd	td  d d
td  d  dtd  d  ttddƒ  d ttƒ ƒ ƒ}t | |ƒ t¡dtdt ƒ dttƒ  d ttƒ tdt ƒtdt ƒ d   d ks J ‚d S )Nre   r#   r*   é¡   r%   és   r$   é   iËòÿÿi5  iq  é}   rl   rk   )r   r    r   r   r   r   r   rX   )rD   r–   r-   r-   r.   Útest_RootSum_rationalä  s    ÿÿ$HÿBÿÿr©   c                  C   s–   t d t d t d t d  } tt dtt ƒ d ƒ}tt tt ƒƒ}tt d t |t ƒ}tt d t |t ƒ}t| |t ƒ ¡ d| d| dgks’J ‚d S )	Nr%   r$   r*   re   rk   rh   rž   é~   )r   r   r   r   r   r   Zas_ordered_terms)rD   r–   r    r‚   rQ   r-   r-   r.   Útest_RootSum_independentð  s     r«   c                  C   sD   t td t d tƒ ¡ } dd„ tdƒD ƒ}t| ƒt|ƒks@J ‚d S )Nrl   r#   c                 S   s"   g | ]}t td  t d |ƒ‘qS )rl   r#   r5   rs   r-   r-   r.   rJ   þ  r0   z#test_issue_7876.<locals>.<listcomp>)r   r   r‰   rO   Ú	frozenset)Úl1Úl2r-   r-   r.   Útest_issue_7876ü  s    r¯   c                  C   sT   t dtd  d ƒ} t|  ¡ ƒdks(J ‚t dtd  d ƒ} t|  ¡ ƒdksPJ ‚d S )Nrk   rj   ri   rh   )r   r   Úlenr‰   r™   r-   r-   r.   Útest_issue_8316  s    r±   c                     s  ddl m‰  ‡ fdd„} | ttd dtd   d ƒƒdks@J ‚| ttd ƒƒdksXJ ‚| tdgd	 d
g tƒƒdkszJ ‚| ttd	 d ƒƒdks–J ‚| ttd d ƒƒdks²J ‚| ttd d ƒƒdksÎJ ‚| ttd d ƒƒdksêJ ‚| ttd d ƒƒdksJ ‚| tg d¢tƒƒdks$J ‚| ttd	 t d ƒƒdksFJ ‚| ttd t d ƒƒdkshJ ‚dd„ }| |d
ddƒƒdksŠJ ‚| |d
ddƒƒdks¤J ‚| |dddƒƒdks¾J ‚| |dddƒƒdksØJ ‚| |d
ddƒƒdksòJ ‚| |d
ddƒƒdksJ ‚d S )Nr   ©Ú_imag_count_of_factorc                    s   t ‡ fdd„|  ¡ d D ƒƒS )Nc                    s   g | ]\}}ˆ |ƒ| ‘qS r-   r-   )rE   rD   Úmr²   r-   r.   rJ     r0   z8test__imag_count.<locals>.imag_count.<locals>.<listcomp>r#   )ÚsumZfactor_listr‡   r²   r-   r.   Ú
imag_count  s    
ÿz$test__imag_count.<locals>.imag_countrl   rh   r$   r#   r%   r"   r*   )r#   r$   r%   c                 S   s"   t t|  t|   tt| ¡tƒS r“   )r   r   rV   )rQ   Zr2r~   r-   r-   r.   Úq  s    ztest__imag_count.<locals>.qr&   )Úsympy.polys.rootoftoolsr³   r   r   )r¶   r·   r-   r²   r.   Útest__imag_count	  s(    ("""r¹   c                  C   sD   t td dtd   d dƒ} |  ¡ }| jr<|j|j dks@J ‚d S )Nr*   r$   r#   r   )r   r   ry   Zis_imaginaryÚaxÚbx)r!   rF   r-   r-   r.   Útest_RootOf_is_imaginary#  s    r¼   c                  C   sP   t d dt   d } t| dƒ ¡ }t| dƒ ¡ }| |¡s>J ‚| |¡sLJ ‚d S )Nr%   re   r#   r   )r   r   ry   Zis_disjoint)rI   ZirÚiir-   r-   r.   Útest_is_disjoint)  s
    r¾   c                      sŠ   t ƒ ‰tˆv du sJ ‚dˆv du s&J ‚dˆt< tˆv s:J ‚tˆv sFJ ‚ˆt dksVJ ‚tt‡fdd„ƒ ‡fdd„‰ tt‡ fdd„ƒ d S )NFr#   c                      s   ˆ d S ©Nr#   r-   r-   r‡   r-   r.   r/   9  r0   z$test_pure_key_dict.<locals>.<lambda>c                    s   dˆ | < d S )Nr$   r-   )Úkr‡   r-   r.   Údont:  s    z test_pure_key_dict.<locals>.dontc                      s   ˆ dƒS r¿   r-   r-   )rÁ   r-   r.   r/   <  r0   )ÚDr   r   r   ÚKeyErrorr:   r-   r-   )rÁ   r~   r.   Útest_pure_key_dict1  s    rÄ   c                      sÒ  t  ¡  dd„ tdƒD ƒ‰dd„ ˆD ƒtddƒtddƒtd	 d  tddƒtd	 d  gks`J ‚ˆd
  ¡  dd„ ˆD ƒtddƒtddƒtd d  tddƒtd d  gks²J ‚tˆd
  ¡ jƒdk sÌJ ‚tˆd  ¡ jƒdk sæJ ‚tˆd  ¡ j	ƒdk sJ ‚tˆd  ¡ jƒdk sJ ‚tˆd  ¡ j	ƒdk s:J ‚ˆd
  ¡  dd„ ˆD ƒtddƒtddƒtd d  tddƒtd d  gksŽJ ‚tˆd
  ¡ jƒdk sªJ ‚tˆd  ¡ jƒdk sÆJ ‚tˆd  ¡ j	ƒdk sâJ ‚tˆd  ¡ jƒdk sþJ ‚tˆd  ¡ j	ƒdk sJ ‚ˆd
  ¡  dd„ ˆD ƒtddƒtddƒtd d  tddƒtd d  gksnJ ‚t
tˆd
  ¡ jƒˆd
  ƒdk s–J ‚t
tˆd  ¡ jƒˆd  ƒ ¡ dk sÂJ ‚t
tˆd  ¡ j	ƒˆd  ƒ ¡ dk sîJ ‚t
tˆd  ¡ jƒˆd  ƒ ¡ dk sJ ‚t
tˆd  ¡ j	ƒˆd  ƒ ¡ dk sFJ ‚ˆd
  ¡  dd„ ˆD ƒtddƒtd d!ƒtd" d!  td d!ƒtd" d!  gksšJ ‚t
tˆd
  ¡ jƒˆd
  ƒd#k sÂJ ‚t
tˆd  ¡ jƒˆd  ƒ ¡ d#k sîJ ‚t
tˆd  ¡ j	ƒˆd  ƒ ¡ d#k sJ ‚t
tˆd  ¡ jƒˆd  ƒ ¡ d#k sFJ ‚t
tˆd  ¡ j	ƒˆd  ƒ ¡ d#k srJ ‚ˆd
  ¡  d$d„ ˆD ƒ‰ d%d„ ˆ D ƒg d&¢ks¨J ‚t‡ ‡fd'd(„ttˆ ƒƒD ƒƒsÎJ ‚d S ))Nc                 S   s&   g | ]}t td  dt  d |ƒ‘qS )r%   rh   r#   )r   r   rs   r-   r-   r.   rJ   B  r0   z-test_eval_approx_relative.<locals>.<listcomp>r%   c                 S   s   g | ]}|  d ¡‘qS )çš™™™™™¹?rŒ   rs   r-   r-   r.   rJ   C  r0   iëÿÿÿéÜ   rž   é   i%  r   c                 S   s   g | ]}|  d d¡‘qS )rÅ   ç-Cëâ6?rŒ   rs   r-   r-   r.   rJ   G  r0   iË  i   iµS i   rÅ   r#   rÈ   r$   c                 S   s   g | ]}|  d d ¡‘qS )rÈ   rŒ   rs   r-   r-   r.   rJ   P  r0   i/øÿÿi4N  i‘  c                 S   s   g | ]}|j d d‘qS )r$   r[   rŒ   rs   r-   r-   r.   rJ   [  r0   i'êüÿiVâ i3™ i    i;e ç{®Gáz„?c                 S   s   g | ]}|j d d‘qS )r%   r[   rŒ   rs   r-   r-   r.   rJ   d  r0   i“ i   i'±Sgü©ñÒMbP?c                 S   s   g | ]}|  d ¡‘qS )r$   )Zeval_approxrs   r-   r-   r.   rJ   n  r0   c                 S   s   g | ]}t |ƒ‘qS r-   )rb   rs   r-   r-   r.   rJ   o  r0   )z-0.10z0.05 - 3.2*Iz0.05 + 3.2*Ic                 3   s2   | ]*}t ˆ | ˆ|  ˆ|   ¡ ƒd k V  qdS )rÉ   N)rw   r\   rs   ©r   Útr-   r.   Ú	<genexpr>q  r0   z,test_eval_approx_relative.<locals>.<genexpr>)r   r   rO   r   r   rx   r   ry   ZdxZdyrw   r\   Úallr°   r-   r-   rÊ   r.   Útest_eval_approx_relative?  sd    þ
þ
þþ(,,,,þ(,,,,rÎ   c                  C   s:   t td t d dƒ} tttdtfƒ}tt| |ƒs6J ‚d S )Nre   r#   r   )r   r   r   r   r   r   )r!   r~   r-   r-   r.   Útest_issue_15920t  s    rÏ   c                  C   st   t d t  d } tt| ƒ ¡ ƒdks(J ‚tt|  t tt ƒ¡ƒ ¡ ƒdksLJ ‚tt|  t ttƒ¡ƒ ¡ ƒdkspJ ‚d S )Nr%   r#   z[CRootOf(x**3 - x + 1, 0)])r   rb   r   rv   rV   r   r   )rI   r-   r-   r.   Útest_issue_19113z  s    ÿÿrÐ   )TÚ__doc__Zsympy.polys.polytoolsr   r¸   r^   r   r   r   r   r   r   rÂ   Zsympy.polys.polyerrorsr   r	   r
   Zsympy.core.functionr   r   Zsympy.core.numbersr   r   r   Zsympy.core.relationalr   Zsympy.core.singletonr   Z&sympy.functions.elementary.exponentialr   r   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   Zsympy.integrals.integralsr   Zsympy.polys.orthopolysr   Zsympy.solvers.solversr   Zsympy.testing.pytestr   r   Zsympy.core.exprr   Z	sympy.abcr   r   r   r   r    r!   r=   rA   rC   rS   rT   rU   rW   rY   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-   r-   r.   Ú<module>   sf    T
[

,1
	
4