def test_get_filtered_val_not_filtered(ft_ll_mvar_1d, Yt_mvar_diffuse_missing): """ Test error message when fit is not run """ kf = Filter(ft_ll_mvar_1d, Yt_mvar_diffuse_missing, for_smoother=True) with pytest.raises(TypeError) as error: kf.get_filtered_val() expected_result = 'The Kalman filter object is not fitted yet' result = str(error.value) assert result == expected_result
def test_get_filtered_val_missing(ft_ll_mvar_diffuse, Yt_mvar_diffuse_missing, theta_ll_mvar_diffuse): """ Test missing measurements handling """ kf = Filter(ft_ll_mvar_diffuse, Yt_mvar_diffuse_missing, for_smoother=True) kf.fit(theta_ll_mvar_diffuse) Yt_filtered, Yt_filtered_cov, _, _ = kf.get_filtered_val() np.testing.assert_array_equal(kf.Ht[2].dot(kf.xi_t[2][0]), Yt_filtered[2])
def test_get_filtered_y_no_xi(ft_ll_mvar_diffuse, Yt_mvar_diffuse_missing, theta_ll_mvar_diffuse): """ Test df without xi """ kf = Filter(ft_ll_mvar_diffuse, Yt_mvar_diffuse_missing, for_smoother=True) kf.fit(theta_ll_mvar_diffuse) Yt_filtered, Yt_filtered_cov, xi_t, P_t = kf.get_filtered_val(is_xi=False) assert np.isnan(xi_t[-1]) assert np.isnan(P_t[-1])
def test_get_filtered_val_all_xi(ft_ll_mvar_diffuse, Yt_mvar_diffuse_missing, theta_ll_mvar_diffuse): """ Test df with all xi """ kf = Filter(ft_ll_mvar_diffuse, Yt_mvar_diffuse_missing, for_smoother=True) kf.fit(theta_ll_mvar_diffuse) Yt_filtered, Yt_filtered_cov, xi_t, P_t = kf.get_filtered_val() np.testing.assert_array_equal(xi_t[2], kf.xi_t[2][0]) np.testing.assert_array_equal(P_t[2], np.nan * np.ones(P_t[2].shape)) np.testing.assert_array_equal(P_t[3], kf.P_star_t[3][0])