def test_compute_rmse(test_data, param_names, fun, link_fun, var_link_fun, loss_fun): model = CurveModel(test_data, 't', 'obs', [['intercept']]*3, 'group', param_names, link_fun, var_link_fun, fun, loss_fun=loss_fun) x = np.hstack((np.ones(3), np.zeros(3))) params = model.compute_params(x) residual = model.obs - model.fun(model.t, params) result = model.compute_rmse(x=x, use_obs_se=False) assert np.abs(result - np.sqrt(np.mean(residual**2))) < 1e-10
def test_loss_fun(test_data, param_names, fun, link_fun, var_link_fun, loss_fun): model = CurveModel(test_data, 't', 'obs', [['intercept']]*3, 'group', param_names, link_fun, var_link_fun, fun, loss_fun=loss_fun) x = np.hstack((np.ones(3), np.zeros(3))) params = model.compute_params(x, expand=False)[:, 0] residual = (model.obs - fun(model.t, params))/model.obs_se val = model.objective(x) my_val = loss_fun(residual) assert np.abs(val - my_val) < 1e-10