7
7
8
8
from pymc_experimental .statespace .filters import (
9
9
KalmanSmoother ,
10
- SingleTimeseriesFilter ,
11
10
SquareRootFilter ,
12
11
StandardFilter ,
13
12
UnivariateFilter ,
34
33
standard_inout = initialize_filter (StandardFilter ())
35
34
cholesky_inout = initialize_filter (SquareRootFilter ())
36
35
univariate_inout = initialize_filter (UnivariateFilter ())
37
- single_inout = initialize_filter (SingleTimeseriesFilter ())
38
36
39
37
f_standard = pytensor .function (* standard_inout , on_unused_input = "ignore" )
40
38
f_cholesky = pytensor .function (* cholesky_inout , on_unused_input = "ignore" )
41
39
f_univariate = pytensor .function (* univariate_inout , on_unused_input = "ignore" )
42
- f_single_ts = pytensor .function (* single_inout , on_unused_input = "ignore" )
43
40
44
- filter_funcs = [f_standard , f_cholesky , f_univariate , f_single_ts ]
41
+ filter_funcs = [f_standard , f_cholesky , f_univariate ]
45
42
46
43
filter_names = [
47
44
"StandardFilter" ,
48
45
"CholeskyFilter" ,
49
46
"UnivariateFilter" ,
50
- "SingleTimeSeriesFilter" ,
51
47
]
52
48
53
49
output_names = [
@@ -191,20 +187,12 @@ def test_output_with_multiple_observed(filter_func, filter_name, rng):
191
187
p , m , r , n = 5 , 5 , 1 , 10
192
188
inputs = make_test_inputs (p , m , r , n , rng )
193
189
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"
208
196
209
197
210
198
@pytest .mark .parametrize (
@@ -215,20 +203,12 @@ def test_missing_data(filter_func, filter_name, p, rng):
215
203
m , r , n = 5 , 1 , 10
216
204
inputs = make_test_inputs (p , m , r , n , rng , missing_data = 1 )
217
205
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"
232
212
233
213
234
214
@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
323
303
324
304
@pytest .mark .parametrize (
325
305
"filter" ,
326
- [StandardFilter , SingleTimeseriesFilter , SquareRootFilter ],
327
- ids = ["standard" , "single_ts" , " cholesky" ],
306
+ [StandardFilter , SquareRootFilter ],
307
+ ids = ["standard" , "cholesky" ],
328
308
)
329
309
def test_kalman_filter_jax (filter ):
330
310
pytest .importorskip ("jax" )
0 commit comments