def test_rss_factory(): """ Test _rss_factory. """ length = 10 v = [2, 3] xdata = np.arange(length) beta = 1j * (np.arange(length) - length//2) ydata = xdata * v[0] * np.exp(v[1] * beta) rss = dpc._rss_factory(length) residue = rss(v, xdata, ydata) assert_almost_equal(residue, 0)
def test_dpc_fit(): """ Test dpc_fit. """ start_point = [1, 0] length = 100 solver = 'Nelder-Mead' xdata = np.arange(length) beta = 1j * (np.arange(length) - length//2) rss = dpc._rss_factory(length) # Test 1 v = [1.02, -0.00023] ydata = xdata * v[0] * np.exp(v[1] * beta) res = dpc.dpc_fit(rss, xdata, ydata, start_point, solver) assert_array_almost_equal(res, v) # Test 2 v = [0.88, -0.0048] ydata = xdata * v[0] * np.exp(v[1] * beta) res = dpc.dpc_fit(rss, xdata, ydata, start_point, solver) assert_array_almost_equal(res, v) # Test 3 v = [0.98, 0.0068] ydata = xdata * v[0] * np.exp(v[1] * beta) res = dpc.dpc_fit(rss, xdata, ydata, start_point, solver) assert_array_almost_equal(res, v) # Test 4 v = [0.95, 0.0032] ydata = xdata * v[0] * np.exp(v[1] * beta) res = dpc.dpc_fit(rss, xdata, ydata, start_point, solver) assert_array_almost_equal(res, v)