From aff4b143724350e4ab7c40393662faabb965ab38 Mon Sep 17 00:00:00 2001 From: Wolfgang Kastaun <wolfgang.kastaun@aei.mpg.de> Date: Mon, 27 Jan 2025 17:31:17 +0100 Subject: [PATCH] Draft unit test for shift inversion. Needs to be double checked. --- tests/test_shift_inversion_numpy.py | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/test_shift_inversion_numpy.py diff --git a/tests/test_shift_inversion_numpy.py b/tests/test_shift_inversion_numpy.py new file mode 100644 index 0000000..25a6859 --- /dev/null +++ b/tests/test_shift_inversion_numpy.py @@ -0,0 +1,32 @@ +"""Unit tests for module shift_inversion_numpy""" + +import numpy as np +import pytest + +from lisainstrument.shift_inversion_numpy import make_shift_inverse_lagrange_numpy + + +def test_shift_inversion_numpy(): + """Test basic functioning of shift_inversion_numpy on analytic coordinate transform""" + order = 31 + nsamp = 200 + k_mod = 8 * np.pi + a_mod = 1e-3 + max_it = 5 + tol = 1e-10 + + def dx_from_x(x): + return np.sin(x * k_mod) * a_mod + + xi, dt = np.linspace(0, 1, nsamp, retstep=True) + fsample = 1 / dt + dxi = dx_from_x(xi) + + op_np = make_shift_inverse_lagrange_numpy(order, a_mod * 1.01, max_it, tol / dt) + + ai_np = op_np(dxi, fsample) + + ai_ex = dx_from_x(xi - ai_np) + + valid_range = slice(op_np.margin_left, -op_np.margin_right) + assert ai_np[valid_range] == pytest.approx(ai_ex[valid_range], abs=tol, rel=0) -- GitLab