77
88from pymc_experimental .statespace .filters import (
99 KalmanSmoother ,
10- SingleTimeseriesFilter ,
1110 SquareRootFilter ,
1211 StandardFilter ,
1312 UnivariateFilter ,
3433standard_inout = initialize_filter (StandardFilter ())
3534cholesky_inout = initialize_filter (SquareRootFilter ())
3635univariate_inout = initialize_filter (UnivariateFilter ())
37- single_inout = initialize_filter (SingleTimeseriesFilter ())
3836
3937f_standard = pytensor .function (* standard_inout , on_unused_input = "ignore" )
4038f_cholesky = pytensor .function (* cholesky_inout , on_unused_input = "ignore" )
4139f_univariate = pytensor .function (* univariate_inout , on_unused_input = "ignore" )
42- f_single_ts = pytensor .function (* single_inout , on_unused_input = "ignore" )
4340
44- filter_funcs = [f_standard , f_cholesky , f_univariate , f_single_ts ]
41+ filter_funcs = [f_standard , f_cholesky , f_univariate ]
4542
4643filter_names = [
4744 "StandardFilter" ,
4845 "CholeskyFilter" ,
4946 "UnivariateFilter" ,
50- "SingleTimeSeriesFilter" ,
5147]
5248
5349output_names = [
@@ -191,20 +187,12 @@ def test_output_with_multiple_observed(filter_func, filter_name, rng):
191187 p , m , r , n = 5 , 5 , 1 , 10
192188 inputs = make_test_inputs (p , m , r , n , rng )
193189
194- if filter_name == "SingleTimeSeriesFilter" :
195- with pytest .raises (
196- AssertionError ,
197- match = "UnivariateTimeSeries filter requires data be at most 1-dimensional" ,
198- ):
199- filter_func (* inputs )
200-
201- else :
202- outputs = filter_func (* inputs )
203- for output_idx , name in enumerate (output_names ):
204- expected_output = get_expected_shape (name , p , m , r , n )
205- assert (
206- outputs [output_idx ].shape == expected_output
207- ), f"Shape of { name } does not match expected"
190+ outputs = filter_func (* inputs )
191+ for output_idx , name in enumerate (output_names ):
192+ expected_output = get_expected_shape (name , p , m , r , n )
193+ assert (
194+ outputs [output_idx ].shape == expected_output
195+ ), f"Shape of { name } does not match expected"
208196
209197
210198@pytest .mark .parametrize (
@@ -215,20 +203,12 @@ def test_missing_data(filter_func, filter_name, p, rng):
215203 m , r , n = 5 , 1 , 10
216204 inputs = make_test_inputs (p , m , r , n , rng , missing_data = 1 )
217205
218- if p > 1 and filter_name == "SingleTimeSeriesFilter" :
219- with pytest .raises (
220- AssertionError ,
221- match = "UnivariateTimeSeries filter requires data be at most 1-dimensional" ,
222- ):
223- filter_func (* inputs )
224-
225- else :
226- outputs = filter_func (* inputs )
227- for output_idx , name in enumerate (output_names ):
228- expected_output = get_expected_shape (name , p , m , r , n )
229- assert (
230- outputs [output_idx ].shape == expected_output
231- ), f"Shape of { name } does not match expected"
206+ outputs = filter_func (* inputs )
207+ for output_idx , name in enumerate (output_names ):
208+ expected_output = get_expected_shape (name , p , m , r , n )
209+ assert (
210+ outputs [output_idx ].shape == expected_output
211+ ), f"Shape of { name } does not match expected"
232212
233213
234214@pytest .mark .parametrize ("filter_func" , filter_funcs , ids = filter_names )
@@ -323,8 +303,8 @@ def test_all_covariance_matrices_are_PSD(filter_func, filter_name, n_missing, ob
323303
324304@pytest .mark .parametrize (
325305 "filter" ,
326- [StandardFilter , SingleTimeseriesFilter , SquareRootFilter ],
327- ids = ["standard" , "single_ts" , " cholesky" ],
306+ [StandardFilter , SquareRootFilter ],
307+ ids = ["standard" , "cholesky" ],
328308)
329309def test_kalman_filter_jax (filter ):
330310 pytest .importorskip ("jax" )
0 commit comments