diff --git a/tests/test_dynamic_delay_dask.py b/tests/test_dynamic_delay_dask.py index 41d1315143af63cc719db1779a7047d713d0504e..f21a36d030a71387eb0db61539c7c5cc39fa2299 100644 --- a/tests/test_dynamic_delay_dask.py +++ b/tests/test_dynamic_delay_dask.py @@ -37,14 +37,14 @@ def test_dynamic_shift_linear_dask(): def test_dynamic_shift_lagrange_dask(): - order = 4 + order = 5 length = order + 1 t, dt = np.linspace(-5.345, 10.345, 1003, retstep=True) def g(x): n = x / 10.0 - return 4.32546 + 3.34324 * x + 4.342 * x**2 + 0.46 * x**3 + 1.43598 * x**4 + return 4.32546 + 3.34324 * x + 4.342 * x**2 + 0.46 * x**3 + 1.43598 * x**4 + 3.3456 * x**5 y = g(t) @@ -61,7 +61,7 @@ def test_dynamic_shift_lagrange_dask(): s_ex = g(np.maximum(t[0], t - d * dt)) assert s_ex[op_da.margin_left :] == pytest.approx( - s_da[op_da.margin_left :], abs=1e-15, rel=1e-14 + s_da[op_da.margin_left :], abs=1e-15, rel=1e-13 ) op_np = make_dynamic_shift_lagrange_numpy( diff --git a/tests/test_dynamic_delay_dsp_dask.py b/tests/test_dynamic_delay_dsp_dask.py new file mode 100644 index 0000000000000000000000000000000000000000..e9f7897227bece530cd3a9d2921b4a97d733c823 --- /dev/null +++ b/tests/test_dynamic_delay_dsp_dask.py @@ -0,0 +1,47 @@ +import numpy as np +import pytest + +from lisainstrument.dynamic_delay_dsp_dask import make_dynamic_shift_dsp_dask, make_dynamic_shift_dsp_numpy +from lisainstrument.dynamic_delay_dask import numpyfy_dask_bivariate + +from lisainstrument.dynamic_delay_numpy import DynShiftBC + + + + + +def test_dynamic_shift_dsp_dask(): + order = 5 + length = order + 1 + + t, dt = np.linspace(-5.345, 10.345, 1003, retstep=True) + + def g(x): + n = x / 10.0 + return 4.32546 + 3.34324 * x + 4.342 * x**2 + 0.46 * x**3 + 1.43598 * x**4 + 3.3456 * x**5 + + y = g(t) + + d = (0.93456456 + 0.0235345 * np.cos(4.3354 * t)) / dt + + + op_da = make_dynamic_shift_dsp_dask( + order, d.min(), d.max(), DynShiftBC.FLAT, DynShiftBC.EXCEPTION + ) + op_na = numpyfy_dask_bivariate(op_da, chunks=19) + + s_da = op_na(y, d) + s_ex = g(np.maximum(t[0], t - d * dt)) + + assert s_ex[op_da.margin_left :] == pytest.approx( + s_da[op_da.margin_left :], abs=1e-15, rel=1e-13 + ) + + op_np = make_dynamic_shift_dsp_numpy( + order, d.min(), d.max(), DynShiftBC.FLAT, DynShiftBC.EXCEPTION + ) + + s_np = op_np(y, d) + + assert np.all(s_np == s_da) +