o
    *ήcrn                     @   s&  d dl 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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mZmZmZmZ d d
lmZ d dlmZ d dlm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z*m+Z+m,Z, d dl-m.Z.m/Z/ d dl0m1Z1m2Z2 d dl3m4Z4m5Z5 d dl6m7Z7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@mAZA d dlBmCZC d dlDmEZE d dlFmGZG d dlHmIZI d dlJmKZK d dlLmMZM d dlmNZN d dlmOZOmPZPmQZQmRZRmSZSmTZTmUZU d d lVmWZWmXZXmYZY d d!lZm[Z[m\Z\ d d"l]m^Z^ d d#l_m`Z`maZa d d$lbmcZcmdZdmeZe dd&d'Zfd(d) Zgd*d+ Zhd,d- Zid.d/ Zjd0d1 Zkd2d3 Zlead4d5 Zmd6d7 Znead8d9 Zod:d; Zpd<d= Zqd>d? Zrd@dA ZsdBdC ZtdDdE ZudFdG ZvdHdI ZwdJdK ZxdLdM ZydNdO ZzdPdQ Z{dRdS Z|dTdU Z}dVdW Z~dXdY ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zdrds Zdtdu Zdvdw Zdxdy Zdzd{ Zd|d} Zd~d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)Productproduct)Sum)Add)N)Functionnfloat)Mul)GoldenRatio)	AlgebraicNumberEFloatIRationaloozoonanpi)Pow)EqS)Symbol)sympify)	factorial)	fibonacci)Absreim)explog)acoshcosh)ceilingfloor)Maxsqrt)acosatancossintan)Integral	integrate)factor)CRootOf)cyclotomic_poly)srepr)sstr)simplify)comp)complex_accuracyPrecisionExhaustedscaled_zeroget_integer_part	as_mpmathevalf_evalf_with_bounded_error)infninfmake_mpc)
from_floatfzero)	unchanged)raisesXFAIL)nxy   c                 K   s   t t| j|fi |ddS )NT)	full_prec)r2   r   r:   )erD   options rK   B/tmp/pip-target-vg8gfxp4/lib/python/sympy/core/tests/test_evalf.pyNS*      rM   c                  C   s   ddl m}  ttdd dd fdksJ ttdtdddfdks$J ttdtdddfd	ks4J ttdtdddfdksDJ ttdtdddfdksTJ t| tjks]J tttjksfJ ttd
d  d S )Nr   finf       @#   g      $@d   %   g     @@+   c                   S   s   t tdi S N   )r8   r   rK   rK   rK   rL   <lambda>9       z$test_evalf_helpers.<locals>.<lambda>)	mpmath.libmprP   r5   r?   mathr<   r   rB   
ValueErrorrO   rK   rK   rL   test_evalf_helpers.   s"     r]   c                   C   sL   t dddks	J t dddksJ t ddd	ksJ t d
ddks$J d S )Nr   rG   z3.14159265358979z2/3
   z0.6666666667z
355/113-pi   z
2.66764e-7z16*atan(1/5)-4*atan(1/239)rM   rK   rK   rK   rL   test_evalf_basic<   s   ra   c                   C   s2   t tttddd t dddddd	ksJ d S )
NrW   r^     FevaluaterG   i  maxnz1.00000000000000e-1000)rM   r   r   r   rK   rK   rK   rL   test_cancellationC   s
   rg   c                   C   sT   t dddks	J t tdd  ddksJ t dddksJ t d	dd
ks(J d S )Nzpi**(10**20)r^   z!1.339148777e+49714987269413385435rS   zq4.946362032e+4971498726941338543512682882908988736516783243804424461340534999249471120895526746555473864642912223z2**(1/10**50)rG   1.00000000000000z2**(1/10**50)-1z6.93147180559945e-51)rM   r   rK   rK   rK   rL   test_evalf_powersH   s   ri   c                  C   s   dt d  d td dtd  t d  t d  dt d   d   dt d  d  tdt    } t| dtd	t d
iddks?J d S )Ni7  r_            y      rG   i1/ iH  subsz-0.827396059946821)rF   rE   rM   arK   rK   rL   test_evalf_rumpS   s   `"rs   c                   C   s^   t dddks	J t dddksJ t dddksJ t d	dd
ks$J t dddks-J d S )Nz2*sqrt(pi)*Ir^   z3.544907702*Iz3+3*IrG   z%3.00000000000000 + 3.00000000000000*IzE+pi*Iz%2.71828182845905 + 3.14159265358979*Izpi * (3+4*I)z%9.42477796076938 + 12.5663706143592*IzI*(2+I)z&-1.00000000000000 + 2.00000000000000*Ir`   rK   rK   rK   rL   test_evalf_complexX   
   rt   c                   C   s   t dddv s	J d S )Nz(pi+E*I)*(E+pi*I)rG   )z0.e-15 + 17.25866050002*Iz0.e-17 + 17.25866050002*Iz-0.e-17 + 17.25866050002*Ir`   rK   rK   rK   rL   test_evalf_complex_bug`   s   rv   c                   C   s   t ddksJ t ddddksJ t ddksJ t d	d
ks"J t ddddks,J t ddks4J t ddks<J t ddddksFJ d S )Nz(E+pi*I)**100000000000000000zL-3.58896782867793e+61850354284995199 + 4.58581754997159e+61850354284995199*Iz(pi + pi*I)**2Tchopz19.7392088021787*Iz(pi + 1/10**8 + pi*I)**2z!6.2831853e-8 + 19.7392088650106*Iz(pi + 1/10**12 + pi*I)**2z6.283e-12 + 19.7392088021850*I(pi + pi*I)**4z-389.636364136010z(pi + 1/10**8 + pi*I)**4z"-389.636366616512 + 2.4805021e-6*Iz(pi + 1/10**12 + pi*I)**4z-389.636364136258 + 2.481e-10*Iz(10000*pi + 10000*pi*I)**4z-3.89636364136010e+18r`   rK   rK   rK   rL   test_evalf_complex_powersf   s,   rz   c                   C   s   t ddksJ d S )Nry   z-389.63636413601 + 0.e-14*Ir`   rK   rK   rK   rL   test_evalf_complex_powers_bugw   s   r{   c                   C   s  t tt dksJ t ttt tdddddksJ t tt dks'J t tttd   d	ks5J t ttd  ttd   d
ksGJ t ttdksQJ t tttt  dks_J t tt dksiJ t t t dkstJ t t t  dksJ d S )Nz1.77245385090552*IrW   rk   Frc   z%1.25331413731550 + 1.25331413731550*Iz'0.413292116101594 + 0.910598499212615*I   z%20.8438653991931 + 8.36343473930031*Iz%17.2442906093590 + 13.6839376767037*Iz23.1406926327793z&-21.0981542849657 + 9.50576358282422*Iz36.4621596072079z&-32.9138577418939 - 15.6897116534332*Iz*-0.0247567717232697 + 0.0118013091280262*I)rM   r&   r   r   r   r   r   r   rK   rK   rK   rL   test_evalf_exponentiation|   s    $r}   c                  C   s   t d} t d}t d}t d}t d}t| |t  ||t   ddks'J t| |t  ||t   dd	ks:J t| |t  ||t   |t  d
dv sQJ d S )Nz63287/100000z52498/100000z69301/100000z83542/100000z2231321613/2500000000r_   z6.44710e-6 + 0.892529*Ir^   z6.447100000e-6 + 0.8925286452*I   )z6.4471e-6 + 0.e-14*Iz6.4471e-6 - 0.e-14*I)r   rM   r   )ABCDFrK   rK   rL   test_evalf_complex_cancellation   s    &&
r   c                   C   s^   t dddks	J t dddksJ t dddksJ t d	dd
ks$J t dddks-J d S )Nzlog(3+pi*I)rG   z&1.46877619736226 + 0.808448792630022*Iz	log(pi*I)z%1.14472988584940 + 1.57079632679490*Izlog(-1 + 0.00001)rk   z-1.0e-5 + 3.1*Izlog(100, 10, evaluate=False)z2.00000000000000z-2*I*log(-(-1)**(S(1)/9))z-5.58505360638185r`   rK   rK   rK   rL   test_evalf_logs   ru   r   c                   C   s   t dddks	J t dddksJ t dddksJ t ddd	ks$J t d
ddks-J t ttttd t ddks@J t ttdd  tdd ddddddksXJ t ttddddddkshJ d S )Nzsin(1)rG   z0.841470984807897zcos(1)z0.540302305868140zsin(10**-6)z9.99999999999833e-7zcos(10**-6)z0.999999999999500zsin(E*10**100)z0.409160531722613   z-2.35596641936785e-12r^   rS      i Frc   x   re   z6.99999999428333e-5)rM   r*   r   r   r&   r   rK   rK   rK   rL   test_evalf_trig   s   &&r   c                  C   sv   dd } t | dtd ddddksJ t dd	d
ksJ t dddks'J t dd	dks0J t dd	dks9J d S )Nc                 S   s    dt d |  d|  t d  S )NrW   r~   rk   )r&   )rD   rK   rK   rL   rX           z*test_evalf_near_integers.<locals>.<lambda>i  r^   i  re   z5.156009964e-1046zsin(2017*2**(1/5))rG   z-1.00000000000000   z-0.99999999999999997857z1+sin(2017*2**(1/5))z2.14322287389390e-17z45 - 613*E/37 + 35/991z6.03764498766326e-11)rM   r   )frK   rK   rL   test_evalf_near_integers   s   "r   c                  C   s   t tttd d d ddksJ dtt td  } dtdt td  }d	td
t td  }t d|  | | ddksEJ d S )Nr   l     h	a%i  r^   z-7.499274028e-13l   h	a%i l   @LhDkB^ rW   z1.613679005e-59)rM   r   r   r&   )r   r   r   rK   rK   rL   test_evalf_ramanujan   s
   &"r   c               	   C   s<  t tdtd dt tddksJ t tdtd dt tddks(J t dddks1J t ddd	ks:J t d
ddksCJ t ddtdiddksPJ t tdtddd t  ddksdJ t tkslJ t dt d t ddks{J tdtdd tdtdd tdtdd i} t tdtdt    	|  ddksJ t t t
dt  d  dksJ t dt d t ddksJ t tdt dksJ t ddtd   d td!   d"t  td#idd$ksJ t td dt d%   d&ksJ t t  d'ksJ t d(t  d)ksJ t d(t t  d*ks.J ttjtdt idtt	tdt  ksIJ d+tt   tju sWJ d+tt   tju seJ d+tt   tju ssJ d+tt   tju sJ d,tt   tju sJ d,tt   tju sJ d,tt   tju sJ d,tt   tju sJ td-dd.d/id+ksJ tt  tjt ksJ ttt   tjtjt  ksJ t dtd0  d,d1ksJ t ttd+ttd2d3 d4ksJ t ttd5d6 jdd/d7d8ksJ d S )9NrW   l d(	 r^   l    d(	 zexpand_log(log(1+1/10**50))r   z1.0000000000000000000e-50zlog(10**100,10)z100.0000000zlog(2)z0.6931471806z(sin(x)-x)/x**3rG   z1/10**50ro   z-0.166666666666667rS   z+0.841470984807897 + 1.00000000000000e-100*Irk   r_   z-2.00000r   rj   z0.346011 + 0.433884*Iz-5.82842712474619z-2.00000000000000E   z-4.43863937855894e-71l   Z_/8   i,0xrT      g{Gz?z19.8100000000000rb   z3(1.00000000000000 - x)**1000*(x - 1.00000000000000)z-xr   z-2.00000000000000*xz-2.00000000000000*x*yr   r~           rx   Tg      @z2.0000*x**2.5000Frc   zx*Max(0, y)l"                                                                       l5   ]olG{x|F.Z 8>5p4wgd~~bA>iv>cg ./
CV'J0Al%1/0][o8~`f	jT[)~XgiUrw   z-oo)rM   r*   r   rE   r   r   r:   rD   rF   rp   r&   r   r)   r   r   r   NaNZeroInfinityNegativeInfinityr9   r	   r%   r    )drK   rK   rL   test_evalf_bugs   sp   ((


,&$
6&&,r   c                  C   s  t tdtd td dd} t tdtd dd}|  dks$J | dks,J tdtdd tdd   dks@J tt td	t	 ddd
tdksUJ tttd	t	 ddd
tdksjJ tt t
d td tj dtdksJ tt t
d td tj dtdksJ ttjtdiddksJ ttjtdt iddt ksJ ttjtddt  idddt  ksJ ttjtdiddksJ ttjtdt iddt ksJ ttjtddt  idddt  ksJ tt dddd  dksJ tt dddd  dks)J d}d}t |td  |ks:J t dtd dksGJ dt dt d t  ttdks\J d S )Nrn   rk   iFrc   r|   r^   rW   2   F   l   '~$DA7YD3':^Xf l   '~$DA7YD3':^Xf i  r~   rb   ro         @rQ         ?gqq?grq?      ?r   l
   oBWIh.2h@hl
   #%:Pe2eb~=xBi; iB i )r$   r    r   r:   r#   r*   r)   intr   r   r
   r&   r   Halfr   rE   r   floatr   r(   r+   )rr   brD   rrK   rK   rL   test_evalf_integer_parts  sD    ($,$."".r   c                     sd   t dt dd  jdd} t| dk sJ | jdk sJ  jdd	d
ks'J tt fdd d S )N   Frc   rS   re   g0.++rk   Trw   r   c                      s    j ddS )NT)strict)r:   rK   rq   rK   rL   rX   <  rY   z0test_evalf_trig_zero_detection.<locals>.<lambda>)r*   r   r:   abs_precrB   r6   )trK   rq   rL   test_evalf_trig_zero_detection6  s   r   c                  C   s   t ttddf dksJ t ttddf  dksJ t dt tddf dks.J t ttt tdtf tt  ksDJ t dt t tt tdtf dt t  ks`J t dtd  tdtf} |  |   ksxJ d S )NrW   rk   r   r   r   rS   )r   rD   r:   doitr   r   r   rE   )srK   rK   rL   test_evalf_sum?  s     ,8r   c                   C   s   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  d S )Nc                   S   s   t dt tdtf S rV   r   rD   r   r:   rK   rK   rK   rL   rX   O      z-test_evalf_divergent_series.<locals>.<lambda>c                   S   s    t ttd d  tdtf S Nrk   rW   r   rK   rK   rK   rL   rX   P  r   c                   S      t dt tdtf S Nr   rW   r   rK   rK   rK   rL   rX   Q  r   c                   S   r   r   r   rK   rK   rK   rL   rX   R  r   c                   S   s   t td tdtf S r   r   rK   rK   rK   rL   rX   S  r   c                   S   r   r   r   rK   rK   rK   rL   rX   T  r   c                   S   r   )Nr   rW   r   rK   rK   rK   rL   rX   U  r   c                   S   s,   t dt d dtd  d  tdtf S )Nrk   r|   rj   r   r   rK   rK   rK   rL   rX   V  s   , c                   S   s(   t dtd  td d  tdtf S )Nr   r|   rj   rW   r   r   rK   rK   rK   rL   rX   W  s   ( rB   r\   rK   rK   rK   rL   test_evalf_divergent_seriesN  s   r   c                   C   sn   t ttddf dksJ tt dtjd td   tdtfdds'J t ttddf d	ks5J d S )
NrW   r^   g    KArk   r~   g:X0_?r   r|   r   )r   rD   r:   r4   r   r   r   rK   rK   rK   rL   test_evalf_productZ  s   2 r   c                   C   sj   t ttd d dk sJ t ttd d dk sJ t tttt  d dk s,J ttdd  d S )NrW   g"@g|=y-DT!	@iW
@c                   S   s   t tt S N)r   r   rE   rK   rK   rK   rL   rX   e  rY   z'test_evalf_py_methods.<locals>.<lambda>)r   r   r   complexr   r   rB   	TypeErrorrK   rK   rK   rL   test_evalf_py_methods`  s   r   c                   C   s   t d jt diddksJ tt jt diddksJ t tdd jt diddks-J t t  jt diddks;J dt  jt diddksIJ tt jt diddksWJ dt t  jt diddksgJ dt  jt diddksuJ d S )Nrk   r   ro   r|   rW   )rE   r:   r&   r   r   r   rK   rK   rK   rL   test_evalf_power_subs_bugsh  s   "  r   c                   C      t tdd  d S )Nc                   S   s   t jddS )Ngarbage)method)r   r:   rK   rK   rK   rL   rX   t  rY   z&test_evalf_arguments.<locals>.<lambda>)rB   r   rK   rK   rK   rL   test_evalf_argumentss  s   r   c                  C   s   ddl m}  td}| |dd }t|tdksJ t|ddks%J |d d	ks/J |t |tks;J | td
dd }|d tdksPJ |`d S )Nr   )implemented_functionr   c                 S      | d S rV   rK   rE   rK   rK   rL   rX   z      z1test_implemented_function_evalf.<locals>.<lambda>zf(x)rk   zf(2)r|   r*   c                 S   r   rV   rK   r   rK   rK   rL   rX     r   )sympy.utilities.lambdifyr   r   strrE   r:   r*   _imp_)r   r   rK   rK   rL   test_implemented_function_evalfw  s   r   c                  C   sn   dD ] } t dd| djsJ tdd| djsJ tdd| djs"J qttdddttddd dks5J d S )N)r   Fr|   rk   rc   Tr   )r   is_Addr	   is_Mulr   is_PowrF   )norK   rK   rL   test_evaluate_false  s
   (r   c                   C   s   t td td  t dt dt ksJ tt dt d d t ds&J t dt d d t d tju s:J t	t dt d t dtjksLJ d S )Nr~   r^   g?皙?r|   rk   r   )
r   rE   rF   r:   rA   r   rD   r   falser   rK   rK   rK   rL   test_evalf_relational  s   , ((r   c                   C   s   t tdt  jrJ d S )Nr   )r)   r&   r   rD   is_FunctionrK   rK   rK   rL   test_issue_5486  rN   r   c                  C   s>   ddl m}  ddlm} t| |dd| dk sJ d S )Nr   )Expr)r   rG   V瞯<)sympy.core.exprr   sympy.core.numbersr   r   _from_mpmath
_to_mpmath)r   r   rK   rK   rL   test_issue_5486_bug  s   &r   c                  C   sH   ddl m} m} t|dt d dk sJ t| d dks"J d S )Nr   
polar_liftr   rW   rk   r   )$sympy.functions.elementary.complexesr   r   r   r   rD   r   rK   rK   rL   	test_bugs  s   r   c                   C   sF   t dtdtdiddksJ t dtdiddksJ ttd	d
  d S )Nzbesseli(-x, y) - besseli(x, y)g      @g      4@ro   z-4.92535585957223e-10z+Piecewise((x, x>0)) + Piecewise((1-x, x>0))r   rh   c                   S   s   t jt dfdS )NrW   ro   )rE   r:   rK   rK   rK   rL   rX     s    ztest_subs.<locals>.<lambda>)rM   rE   rF   rB   r   rK   rK   rK   rL   	test_subs  s   r   c                  C   sJ   t d} t| ddksJ t d} t| ddksJ t| ddks#J d S )Nz(-27*12**(1/3)*sqrt(31)*I +
    27*2**(2/3)*3**(1/3)*sqrt(31)*I)/(-2511*2**(2/3)*3**(1/3) +
    (29*18**(1/3) + 9*2**(1/3)*3**(2/3)*sqrt(31)*I +
    87*2**(1/3)*3**(1/6)*I)**2)rW   z0.e-118 - 0.e-118*Ia  -(357587765856 + 18873261792*249**(1/2) + 56619785376*I*83**(1/2) +
    108755765856*I*3**(1/2) + 41281887168*6**(1/3)*(1422 +
    54*249**(1/2))**(1/3) - 1239810624*6**(1/3)*249**(1/2)*(1422 +
    54*249**(1/2))**(1/3) - 3110400000*I*6**(1/3)*83**(1/2)*(1422 +
    54*249**(1/2))**(1/3) + 13478400000*I*3**(1/2)*6**(1/3)*(1422 +
    54*249**(1/2))**(1/3) + 1274950152*6**(2/3)*(1422 +
    54*249**(1/2))**(2/3) + 32347944*6**(2/3)*249**(1/2)*(1422 +
    54*249**(1/2))**(2/3) - 1758790152*I*3**(1/2)*6**(2/3)*(1422 +
    54*249**(1/2))**(2/3) - 304403832*I*6**(2/3)*83**(1/2)*(1422 +
    4*249**(1/2))**(2/3))/(175732658352 + (1106028 + 25596*249**(1/2) +
    76788*I*83**(1/2))**2)r~   z0.077284 + 1.1104*Iz0.08 + 1.*I)r   rM   )vrK   rK   rL   test_issue_4956_5204  s
   r   c                  C   s<   t tt  t tt   } t| dksJ |  dksJ d S )Nz17.2586605000200g[Z7B1@)r   r   r   rM   rD   rq   rK   rK   rL   test_old_docstring  s   r   c                   C   sF   t ttd tddf ddksJ tddd dks!J d S )Nrk   r   rW   r   r   Frc   )r-   r(   rE   r:   roundrD   rK   rK   rK   rL   test_issue_4806  s   *r   c                   C   s.   t tdttt  tddfddksJ d S )NrW   i  z5.e+567 + 2.e+568*I)rM   r   r&   rD   r   rK   rK   rK   rL   test_evalf_mul  s   .r   c                  C   s   dgdddfd} }t d| |fksJ t | dksJ dgdddfd} }t dd| |fks1J t | dks9J ttdd  ttd	d  ttd
d  ttdd  d S )Nr   rW   rS   r   )r   rW   rS   rW   )rW   rW   rS   rW   c                   S   s   t t dS )NrS   r7   rK   rK   rK   rL   rX     rY   z"test_scaled_zero.<locals>.<lambda>c                   S   
   t ddS )NrS   rk   r   rK   rK   rK   rL   rX        
 c                   S   r   )NrS   r   r   rK   rK   rK   rL   rX     r   c                   S      t dS )N)rW   r~   rW   r|   r   rK   rK   rK   rL   rX     r   )r7   rB   r\   )rr   r   rK   rK   rL   test_scaled_zero  s   r   c                  C   sH   t ddD ]} td| d jd|  drtd| jd|  dr!J qd S )Ni   r^   rk   rw   )ranger   rD   )irK   rK   rL   test_chop_value  s   6r   c                   C   s.   t jddtks
J t  jddtksJ d S )NTrw   )r   r:   r<   r=   rK   rK   rK   rL   test_infinities  s   r   c                   C   sL   t ddjdtdddfksJ tddjdtdddfks$J d S )	Nr|   r   r   i= ig	@i i)r&   r   _mpf_r   r   rK   rK   rK   rL   test_to_mpmath  s   $(r   c                  C   s8   dt d d } |  dksJ | |   dksJ d S )Ni`yl   y* l   rT g!|=gi;)r&   rD   )addrK   rK   rL   test_issue_6632_evalf  s   r   c                  C   s,   ddl m}  | d j| didtksJ d S )Nr   HrW   ro   )	sympy.abcr   r:   r   r   rK   rK   rL   test_issue_4945  s    r   c                  C   s8   t dd} ttttt t|  fdjdksJ d S )NrW   i@B rk   r^   )r   r,   r*   rE   r   rD   r   )epsrK   rK   rL   test_evalf_integral   s   
.r   c                  C   sL   t td} t| }tt|dk sJ t| d}tt|dk s$J d S )N   r   @   g=D2)r   r   r:   r   r   r*   )r   prK   rK   rL   !test_issue_8821_highprec_from_str  s
   
r   c                  C   s   t dddd} t|  tj jdksJ t|  tj jdks!J t| tj jdks-J t| tj jdks9J ttjdi ddksEJ ttjdi ddksQJ ttdd	di dd
ks_J ttdd	di ddksmJ d S )NrE   T)evenpositiveFr   r   r   rW   )rW   r   rk   )r   r   )r   r$   r   r   is_evenr#   r8   r   )r   rK   rK   rL   test_issue_8853  s    r  c                  C   sF   G dd dt } t| tddksJ ttddi ddks!J d S )Nc                   @   s   e Zd Zdd ZdS )z'test_issue_17681.<locals>.identity_funcc                 _   s   | j d j|i |S Nr   )argsr:   )selfr  kwargsrK   rK   rL   _eval_evalf  s   z3test_issue_17681.<locals>.identity_func._eval_evalfN)__name__
__module____qualname__r  rK   rK   rK   rL   identity_func  s    r
  r   rW   Tr   )r   r$   r   r8   )r
  rK   rK   rL   test_issue_17681  s   r  c                  C   sD   ddl m}  | d}| d}|| }|j|d|diddks J d S )Nr   )Dummyr   rW   rk   ro   r|   )sympy.core.symbolr  r:   )r  d1d2rI   rK   rK   rL   test_issue_9326%  s
    r  c                   C   s   t tddks
J d S )Ni  @i  )r#   r&   rK   rK   rK   rL   test_issue_10323-  s   r  c                   C   r   )Nc                   S   r   )Na  
    Min(-sqrt(3)*cos(pi/18)/6 + re(1/((-1/2 - sqrt(3)*I/2)*(1/6 +
    sqrt(3)*I/18)**(1/3)))/3 + sin(pi/18)/2 + 2 + I*(-cos(pi/18)/2 -
    sqrt(3)*sin(pi/18)/6 + im(1/((-1/2 - sqrt(3)*I/2)*(1/6 +
    sqrt(3)*I/18)**(1/3)))/3), re(1/((-1/2 + sqrt(3)*I/2)*(1/6 +
    sqrt(3)*I/18)**(1/3)))/3 - sqrt(3)*cos(pi/18)/6 - sin(pi/18)/2 + 2 +
    I*(im(1/((-1/2 + sqrt(3)*I/2)*(1/6 + sqrt(3)*I/18)**(1/3)))/3 -
    sqrt(3)*sin(pi/18)/6 + cos(pi/18)/2))r   rK   rK   rK   rL   rX   3  r   z'test_AssocOp_Function.<locals>.<lambda>r   rK   rK   rK   rL   test_AssocOp_Function1  s   r  c                  C   s\   t tdt } t| | ksJ t ttd } t| | ksJ ttd tdtks,J d S )Nr   grj   g      @)rE   r%   rF   r   rD   )eqrK   rK   rL   test_issue_10395C  s
    r  c                   C   st   t ttdddksJ tttdddksJ t tdtd ddks)J ttdtd ddks8J d S )Nz9.99999999999999999999r^   r   rW   r   rk   )r$   r    r   r#   rK   rK   rK   rL   test_issue_13098K  s   "r  c                  C   s   dt  t d tdt d  d dt  d    } t dtdi}| j|d}t|dks,J tt t t d t    jt diddksBJ d S )Nr~   rk   rR   r|   rG   r   ro   )rE   rF   r:   r   )rI   subste2rK   rK   rL   test_issue_14601R  s
   00r  c                  C   s   t j} t| tddf}|| ksJ t|di t| di   kr$dks'J  J |d  dks1J ttd t tddf}tdtddf}|| }tt|| dksUJ d S )NrW   rk   rG   )NNrG   Nr   )r   r   r   rE   r:   rD   r3   r.   )zrI   expr0expr1expr2rK   rK   rL   test_issue_11151Z  s   

r  c                   C   sP   t ddt ddksJ t dddksJ tt ddd t  d	k s&J d S )
Nz2**.5   zsqrt(2)zx - xr   zpi*.1   r^   g^ 9^;)r   r   r   rD   rK   rK   rK   rL   test_issue_13425j  s   &r   c                   C   s2   t tt tttdt  dt ksJ d S )NrW         ?)r   r'   r   r!   r"   rK   rK   rK   rL   test_issue_17421p  s   2r"  c            
      C   s   ddl m} m} ddlm}m}m} td}td}|||}|j|d|did|d	d
ks0J ||| d}|j|d|did|dd	ksHJ |||| d t	|d dt
  d  ||d}	|	j|did| ksoJ d S )Nr   )EmptySetReals)
Complement	FiniteSetIntersectionrr   r   rW   rk   ro   r!  rQ   g      rj   )
sympy.setsr#  r$  sympy.sets.setsr%  r&  r'  r   r:   r&   r   )
r#  r$  r%  r&  r'  rr   r   r   r   solrK   rK   rL   test_issue_20291t  s   
""6r+  c                   C   s  dt  jt didtksJ dt  jt didtksJ dt  jt didtks*J dt  jt dt idtks:J tdtdddddd tksLJ tt dt  ddjt didtt dt  ddt d  krotksrJ  J tdt  dt  ddjt didtksJ tdt  tdt  ddjt didtksJ ttdd t	ksJ t
tdd tksJ ttdd tksJ tttdd tksJ tt	tdd tksJ ttddd dksJ tttdddd dksJ tttdddd tks
J tttjdd tksJ ttddd tks'J tdtdd tks5J ttdd tksBJ tjd	d
tksMJ t jt tidtksZJ d S )NrW   r   ro   r   rk   Frc   r|   Trw   )rE   r:   r   r   r   r	   r   rp   r   r   r   r   r   r   r   r   r    rK   rK   rK   rL   test_evalf_with_zoo  s,    $L*. "r,  c                  C   sX  t dd dftd dftt d dfddt  d dft dt ddd ftt ddd ftt t ddd fddt  t ddd fddt  t dd ft dd	t dd
d fg
} | D ]@\}}}t|di \}}}}t|||\}}}}|d u rvd|  }t|pzt|p}tf}	t|pt|ptf}
t|
|	 |k sJ qTtt	dd  tt	dd  tt	dd  d S )Nr   rW   r^   rk   r|   r~   rb   i  i l    J)5   c                   S   s   t ttdS r  )r;   r   r   rK   rK   rK   rL   rX     s    z/test_evalf_with_bounded_error.<locals>.<lambda>c                   S   s   t tt S r   )r;   r   rK   rK   rK   rL   rX     rY   c                   S   s
   t ttS r   )r;   r   r   rK   rK   rK   rL   rX     r   )
r   r   r   r:   r;   r>   r@   r   rB   r\   )casesx0r   mrr   r   _cr   r  wrK   rK   rL   test_evalf_with_bounded_error  s,   
r4  c                  C   s8   ddt d  } t| }t| di t|di ksJ d S )Nir|   rW   )r&   r   r:   )rr   rE   rK   rK   rL   test_issue_22849  s    r5  c                  C   sZ   t d} tttddg d| d}| }t|tsJ t|dr$J t|ds+J d S )Nzetar~   r   )r   r   r   r   )alias_mpc_r   )r   r   r/   r0   r:   
isinstancer   hasattr)r6  a5r  rK   rK   rL   test_evalf_real_alg_num  s   r<  c                  C   s*  dt d t d  t d  t d d  t d d  t d   } t| jdt didd	ks-J t| jdt didd
ks<J t| jdt diddksKJ t| jdt diddksZJ tdd tddD  } t| jdt diddksuJ t| jdt diddksJ t| jdt diddksJ d S )NrW   	   rn   r   rj   rk   r|   ro   z-4.e-5z-4.1e-5rl   z-4.1335978836e-5r   z-0.000041335978835978835979c                 s   s    | ]}t | V  qd S r   r   ).0r   rK   rK   rL   	<genexpr>  s    z#test_issue_20733.<locals>.<genexpr>rb   z#Float('4.0271e+2561', precision=10)r^   z*Float('4.02790050126e+2561', precision=37)r-  zWFloat('4.0279005012722099453824067459760158730668154575647110393e+2561', precision=179))rE   r   r:   r	   r   r1   )exprrK   rK   rL   test_issue_20733  s   <"rA  )rG   )r[   sympy.concrete.productsr   r   sympy.concrete.summationsr   sympy.core.addr   sympy.core.evalfr   sympy.core.functionr   r   sympy.core.mulr	   
sympy.corer
   r   r   r   r   r   r   r   r   r   r   sympy.core.powerr   sympy.core.relationalr   sympy.core.singletonr   r  r   sympy.core.sympifyr   (sympy.functions.combinatorial.factorialsr   %sympy.functions.combinatorial.numbersr   r   r   r   r   &sympy.functions.elementary.exponentialr   r    %sympy.functions.elementary.hyperbolicr!   r"   #sympy.functions.elementary.integersr#   r$   (sympy.functions.elementary.miscellaneousr%   r&   (sympy.functions.elementary.trigonometricr'   r(   r)   r*   r+   sympy.integrals.integralsr,   r-   sympy.polys.polytoolsr.   sympy.polys.rootoftoolsr/   sympy.polys.specialpolysr0   sympy.printingr1   sympy.printing.strr2   sympy.simplify.simplifyr3   r4   r5   r6   r7   r8   r9   r:   r;   mpmathr<   r=   r>   mpmath.libmp.libmpfr?   r@   r   rA   sympy.testing.pytestrB   rC   r   rD   rE   rF   rM   r]   ra   rg   ri   rs   rt   rv   rz   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   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r   r"  r+  r,  r4  r5  r<  rA  rK   rK   rK   rL   <module>   s    ,$


B&			
#