from sympy import series, atan, nsimplify
from src.taylor import estimate
import pytest
from sympy.abc import x
def ref_taylor(f, a, N, xval):
return nsimplify(series(f, x=x, x0=a, n=N).removeO().subs(x, xval).doit())
at_one_tenth = [(0, N, 0.1) for N in range(15)]
at_two_tenths = [(0, N, 0.2) for N in range(15)]
at_one = [(0, N, 1) for N in range(15)]
@pytest.mark.parametrize('a, N, xval', at_one_tenth + at_two_tenths + at_one)
def test_arctan_taylor(a, N, xval):
result = estimate('arctan', xval, a, atan(a), N)
ref = ref_taylor(atan(x), a, N, xval)
print(float(result), float(ref))
assert abs(float(result) - float(ref)) < 10**(-8)
-
Adam Blank authored5f83d117