a
    Ÿ¬<bN  ã                   @   s  d 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 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-m.Z.m/Z/m0Z0m1Z1 dd„ Z2dd„ Z3dd„ Z4dd„ Z5dd„ Z6dd„ Z7dd„ Z8d d!„ Z9e(d"d#„ ƒZ:d$d%„ Z;d&d'„ Z<d(d)„ Z=d*d+„ Z>d,d-„ Z?d.d/„ Z@d0d1„ ZAd2d3„ ZBd4d5„ ZCd6d7„ ZDd8d9„ ZEd:d;„ ZFd<d=„ ZGd>d?„ ZHd@dA„ ZIdBdC„ ZJdDdE„ ZKdFdG„ ZLdHdI„ ZMe(dJdK„ ƒZNdLdM„ ZOdNdO„ ZPdPS )Qz@Tests for the implementation of RootOf class and related tools. é    )ÚPoly)Ú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-   úr/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/polys/tests/test_rootoftools.pyÚ<lambda>T   ó    z&test_CRootOf___new__.<locals>.<lambda>c                   S   s
   t ddƒS ©Nr#   r   r,   r-   r-   r-   r.   r/   U   r0   c                   S   s   t tdtƒdƒS r+   ©r   r   r   r-   r-   r-   r.   r/   W   r0   c                   S   s   t tdtƒdƒS r1   r2   r-   r-   r-   r.   r/   X   r0   c                   S   s   t tt dƒS r+   ©r   r   r   r-   r-   r-   r.   r/   Y   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/   `   r0   c                   S   s   t td d dƒS )Nr$   r#   r(   r5   r-   r-   r-   r.   r/   a   r0   c                   S   s   t td d dƒS ©Nr$   r#   r5   r-   r-   r-   r.   r/   b   r0   c                   S   s   t td d dƒS )Nr$   r#   r%   r5   r-   r-   r-   r.   r/   c   r0   c                   S   s   t td d tƒS r6   r5   r-   r-   r-   r.   r/   d   r0   c                   S   s   t td t dt  tdƒS r4   r3   r-   r-   r-   r.   r/   n   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_attributess   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
¡d1t
 ksJ ‚| 	d
¡d2t
 ksJ ‚tt d
td  d3td   dtd	   d$ dƒ 	d¡ƒd4ks\J ‚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 sFJ ‚dCd„ tdƒD ƒ}
|
d  ¡  |
D ]Z}| ¡ }| 	d	¡ || ¡ ksJ ‚| ¡  || ¡ ksªJ ‚||j|jŽ kshJ ‚qhd S )DNr%   r   é   ©Únz-1.2134116627622296341r#   z0.60670583138111481707z1.45061224918844152650r$   r*   T©Z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_rootsra   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 )Nrd   re   r#   )r   r   r\   rx   )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 )Nrd   r#   r%   r$   r   Fr'   r(   r*   rg   re   rk   ZZZ)Údomainr"   )r   r   ru   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 )	Nrd   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_rationalrb   r-   r-   r.   rJ   ?  r0   z.test_CRootOf_eval_rational.<locals>.<listcomp>c                 S   s   g | ]}t | d ¡ƒ‘qS r^   r`   )rE   Úrootr-   r-   r.   rJ   B  r0   rc   )r   r   ru   r7   r   )r}   r~   rŒ   r-   r-   r.   Útest_CRootOf_eval_rational=  s    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$   rj   c                   S   s   t td t t ƒS ©Nr%   )r   r   r   r-   r-   r-   r.   r/   Y  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/   Z  r0   z8test_RootSum___new__.<locals>.<lambda>.<locals>.<lambda>)r   r   r-   r-   r-   r.   r/   Z  r0   F)Úautor   r&   r#   rk   rf   )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__K  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   rs   rt   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 )Nrd   r#   r*   é¡   r%   és   r$   é   iËòÿÿi5  iq  é}   rk   rj   )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*   rd   rj   rg   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 )Nrk   r#   c                 S   s"   g | ]}t td  t d |ƒ‘qS )rk   r#   r5   rr   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 )Nrj   ri   rh   rg   )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_countrk   rg   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   rx   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%   rd   r#   r   )r   r   rx   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/     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_dict  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%   rg   r#   )r   r   rr   r-   r-   r.   rJ     r0   z-test_eval_approx_relative.<locals>.<listcomp>r%   c                 S   s   g | ]}|  d ¡‘qS )çš™™™™™¹?r‹   rr   r-   r-   r.   rJ     r0   iëÿÿÿéÜ   rš   é   i%  r   c                 S   s   g | ]}|  d d¡‘qS )rÁ   ç-Cëâ6?r‹   rr   r-   r-   r.   rJ     r0   iË  i   iµS i   rÁ   r#   rÄ   r$   c                 S   s   g | ]}|  d d ¡‘qS )rÄ   r‹   rr   r-   r-   r.   rJ   $  r0   i/øÿÿi4N  i‘  c                 S   s   g | ]}|j d d‘qS )r$   r[   r‹   rr   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‹   rr   r-   r-   r.   rJ   8  r0   i“ i   i'±Sgü©ñÒMbP?c                 S   s   g | ]}|  d ¡‘qS )r$   )Zeval_approxrr   r-   r-   r.   rJ   B  r0   c                 S   s   g | ]}t |ƒ‘qS r-   )ra   rr   r-   r-   r.   rJ   C  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)rv   r\   rr   ©r   Útr-   r.   Ú	<genexpr>E  r0   z,test_eval_approx_relative.<locals>.<genexpr>)r   Úclear_cacherO   r   r   rw   r   rx   ZdxZdyrv   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 )Nrd   r#   r   )r   r   r   r   r   r   )r!   r}   r-   r-   r.   Útest_issue_15920H  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   ra   r   ru   rV   r   r   )rI   r-   r-   r.   Útest_issue_19113N  s    ÿÿrÍ   N)QÚ__doc__Zsympy.polys.polytoolsr   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.   Ú<module>   sb    T
[

1
	
4