@@ -29,9 +29,14 @@ fn almanac() -> Arc<Almanac> {
29
29
/// Tests the robustness of the Batch least squares estimator against large initial state errors.
30
30
#[ allow( clippy:: identity_op) ]
31
31
#[ rstest]
32
- // #[case(BLSSolver::NormalEquations)]
33
- #[ case( BLSSolver :: LevenbergMarquardt ) ]
34
- fn blse_robust_large_disp_test ( #[ case] solver : BLSSolver , almanac : Arc < Almanac > ) {
32
+ #[ case( BLSSolver :: NormalEquations , 60 . seconds( ) , 2 . minutes( ) ) ]
33
+ #[ case( BLSSolver :: LevenbergMarquardt , 10 . seconds( ) , 10 . minutes( ) ) ]
34
+ fn blse_robust_large_disp_cov_test (
35
+ #[ case] solver : BLSSolver ,
36
+ #[ case] sample : Duration ,
37
+ #[ case] offset : Duration ,
38
+ almanac : Arc < Almanac > ,
39
+ ) {
35
40
let _ = pretty_env_logger:: try_init ( ) ;
36
41
37
42
let iau_earth = almanac. frame_from_uid ( IAU_EARTH_FRAME ) . unwrap ( ) ;
@@ -63,8 +68,14 @@ fn blse_robust_large_disp_test(#[case] solver: BLSSolver, almanac: Arc<Almanac>)
63
68
64
69
// Define the tracking configurations
65
70
let configs = BTreeMap :: from ( [
66
- ( dss65_madrid. name . clone ( ) , TrkConfig :: default ( ) ) ,
67
- ( dss34_canberra. name . clone ( ) , TrkConfig :: default ( ) ) ,
71
+ (
72
+ dss65_madrid. name . clone ( ) ,
73
+ TrkConfig :: from_sample_rate ( sample) ,
74
+ ) ,
75
+ (
76
+ dss34_canberra. name . clone ( ) ,
77
+ TrkConfig :: from_sample_rate ( sample) ,
78
+ ) ,
68
79
] ) ;
69
80
70
81
// Note that we do not have Goldstone so we can test enabling and disabling the EKF.
@@ -121,7 +132,10 @@ fn blse_robust_large_disp_test(#[case] solver: BLSSolver, almanac: Arc<Almanac>)
121
132
. build ( ) ;
122
133
123
134
let blse_solution = blse
124
- . estimate ( initial_estimate. nominal_state , & arc)
135
+ . estimate (
136
+ initial_estimate. nominal_state ,
137
+ & arc. filter_by_offset ( ..offset) ,
138
+ )
125
139
. expect ( "blse should not fail" ) ;
126
140
127
141
println ! ( "{blse_solution}" ) ;
0 commit comments