Skip to content

Commit 5513966

Browse files
committed
linted and formatted
1 parent a37acb8 commit 5513966

8 files changed

Lines changed: 30 additions & 101 deletions

File tree

core/src/kalman.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3345,7 +3345,7 @@ mod tests {
33453345
for _ in 0..20 {
33463346
let imu_data = IMUData {
33473347
accel: Vector3::new(0.0, 0.0, earth::gravity(&0.0, &0.0)) + true_accel_bias,
3348-
gyro: true_gyro_bias.clone(),
3348+
gyro: true_gyro_bias,
33493349
};
33503350
eskf.predict(&imu_data, 0.1);
33513351

core/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -993,9 +993,9 @@ pub(crate) fn calculate_constant_velocity_acceleration(
993993

994994
// For constant velocity: specific_force + gravity - r*(transport_rate + 2*rotation_rate)*velocity = 0
995995
// Therefore: specific_force = r*(transport_rate + 2*rotation_rate)*velocity - gravity
996-
let specific_force = r * (transport_rate + 2.0 * rotation_rate) * target_velocity - gravity;
996+
997997

998-
specific_force
998+
r * (transport_rate + 2.0 * rotation_rate) * target_velocity - gravity
999999
}
10001000

10011001
/// Helper function to generate IMU data and GPS measurements for a given scenario
@@ -1607,7 +1607,7 @@ mod tests {
16071607
longitude: 0.0_f64.to_radians(), // Already in radians
16081608
altitude: 1000.0,
16091609
velocity_north: 0.0,
1610-
velocity_east: vel.clone(), // 10 m/s eastward
1610+
velocity_east: vel, // 10 m/s eastward
16111611
velocity_vertical: 0.0,
16121612
attitude: Rotation3::identity(),
16131613
is_enu: true,

core/src/linearize.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1064,7 +1064,7 @@ mod tests {
10641064
let x0: Vec<f64> = state.into();
10651065

10661066
// Evaluate nominal dynamics
1067-
let mut state_nominal = state.clone();
1067+
let mut state_nominal = *state;
10681068
crate::forward(
10691069
&mut state_nominal,
10701070
crate::IMUData {

core/src/messages.rs

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,6 @@ impl GnssDegradationConfig {
409409
/// };
410410
/// let gnss_event = Event::Measurement { meas: Box::new(gnss_meas), elapsed_s: 2.0 };
411411
/// ```
412-
413412
pub enum Event {
414413
/// IMU prediction step.
415414
///
@@ -1208,8 +1207,8 @@ mod tests {
12081207
let original_lon = -122.0;
12091208

12101209
let mut all_same = true;
1211-
let mut prev_lat = None;
1212-
let mut prev_lon = None;
1210+
let mut prev_lat: Option<f64> = None;
1211+
let mut prev_lon: Option<f64> = None;
12131212

12141213
for event in &gnss_events {
12151214
if let Event::Measurement { meas, .. } = event {
@@ -1223,17 +1222,15 @@ mod tests {
12231222

12241223
// Check if positions vary between measurements
12251224
if let Some(prev_lat) = prev_lat
1226-
&& (meas.latitude - prev_lat as f64).abs() > 1e-10
1227-
{
1228-
all_same = false;
1229-
}
1225+
&& (meas.latitude - prev_lat).abs() > 1e-10 {
1226+
all_same = false;
1227+
}
12301228
prev_lat = Some(meas.latitude);
12311229

1232-
if let Some(prev_lon) = prev_lon {
1233-
if (meas.longitude - prev_lon as f64).abs() > 1e-10 {
1230+
if let Some(prev_lon) = prev_lon
1231+
&& (meas.longitude - prev_lon).abs() > 1e-10 {
12341232
all_same = false;
12351233
}
1236-
}
12371234
prev_lon = Some(meas.longitude);
12381235
}
12391236
}
@@ -1284,14 +1281,13 @@ mod tests {
12841281
// Find GNSS events and group by time
12851282
let mut gnss_by_time: Vec<(f64, &GPSPositionAndVelocityMeasurement)> = Vec::new();
12861283
for event in &events.events {
1287-
if let Event::Measurement { meas, elapsed_s } = event {
1288-
if let Some(gps) = meas
1284+
if let Event::Measurement { meas, elapsed_s } = event
1285+
&& let Some(gps) = meas
12891286
.as_any()
12901287
.downcast_ref::<GPSPositionAndVelocityMeasurement>()
12911288
{
12921289
gnss_by_time.push((*elapsed_s, gps));
12931290
}
1294-
}
12951291
}
12961292
gnss_by_time.sort_by(|a, b| a.0.partial_cmp(&b.0).unwrap());
12971293

@@ -1301,7 +1297,7 @@ mod tests {
13011297

13021298
// Check measurements before, during, and after hijack
13031299
for (time, meas) in gnss_by_time {
1304-
if time < 1.0 - 1e-6 || time > 2.0 + 1e-6 {
1300+
if !(1.0 - 1e-6..=2.0 + 1e-6).contains(&time) {
13051301
// Before hijack or after hijack: positions should be near original
13061302
assert!((meas.latitude - original_lat).abs() < 1e-6);
13071303
assert!((meas.longitude - original_lon).abs() < 1e-6);
@@ -1327,7 +1323,7 @@ mod tests {
13271323

13281324
// This should at least not crash
13291325
let events = build_event_stream(&records, &config);
1330-
assert!(events.events.len() > 0);
1326+
assert!(!events.events.is_empty());
13311327
}
13321328

13331329
#[test]
@@ -1369,7 +1365,7 @@ mod tests {
13691365

13701366
let events = build_event_stream(&records, &config);
13711367
// Should have events
1372-
assert!(events.events.len() > 0);
1368+
assert!(!events.events.is_empty());
13731369

13741370
// Check that some GNSS measurements exist
13751371
let gnss_count = events
@@ -1397,7 +1393,7 @@ mod tests {
13971393

13981394
let events = build_event_stream(&records, &config);
13991395
// Should have events
1400-
assert!(events.events.len() > 0);
1396+
assert!(!events.events.is_empty());
14011397

14021398
// Check that some GNSS measurements exist
14031399
let gnss_count = events
@@ -1493,7 +1489,7 @@ mod tests {
14931489
let events = build_event_stream(&records, &config);
14941490

14951491
// Should have events even with NaN accuracies
1496-
assert!(events.events.len() > 0);
1492+
assert!(!events.events.is_empty());
14971493

14981494
// Check that GNSS measurements were created
14991495
let gnss_count = events
@@ -1520,7 +1516,7 @@ mod tests {
15201516

15211517
let events = build_event_stream(&records, &config);
15221518
// Should have events
1523-
assert!(events.events.len() > 0);
1519+
assert!(!events.events.is_empty());
15241520
}
15251521
}
15261522
#[cfg(test)]

core/src/particle.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
3636
use std::any::Any;
3737

38-
3938
use nalgebra::DVector;
4039
use rand::prelude::*;
4140

@@ -354,9 +353,9 @@ pub trait ParticleFilter {
354353
#[cfg(test)]
355354
mod tests {
356355
use super::*;
357-
use crate::measurements::GPSPositionMeasurement;
358-
use crate::{IMUData, StrapdownState, earth, generate_scenario_data};
359-
use nalgebra::Rotation3;
356+
357+
358+
360359

361360
// ============= Tests for standalone resampling functions ==================
362361

core/src/sim.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3544,7 +3544,7 @@ mod tests {
35443544
let timestamp = chrono::Utc::now();
35453545
let nav = NavigationResult::from((
35463546
&timestamp,
3547-
&state_vector.into(),
3547+
&state_vector,
35483548
&DMatrix::from_diagonal(&DVector::from_element(15, 0.0)), // dummy covariance
35493549
));
35503550
assert_eq!(nav.latitude, (1.0_f64).to_degrees());

sim/src/common.rs

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@
55
//! - Path validation and file discovery
66
//! - User input prompts
77
8-
use log::error;
9-
use rayon::prelude::*;
108
use std::error::Error;
119
use std::io;
1210
use std::path::{Path, PathBuf};
13-
use std::sync::Mutex;
1411

1512
/// Initialize the logger with the specified configuration.
1613
///
@@ -135,69 +132,6 @@ pub fn validate_output_path(output: &Path) -> Result<(), Box<dyn Error>> {
135132
Ok(())
136133
}
137134

138-
/// Process multiple files with optional parallel execution.
139-
///
140-
/// # Arguments
141-
/// * `csv_files` - Vector of CSV files to process
142-
/// * `parallel` - Whether to process files in parallel
143-
/// * `processor` - Function to process each file, returns Result
144-
///
145-
/// # Errors
146-
/// Returns an error if any files fail to process (after all attempts).
147-
pub fn process_files<F>(
148-
csv_files: &[PathBuf],
149-
parallel: bool,
150-
processor: F,
151-
) -> Result<(), Box<dyn Error>>
152-
where
153-
F: Fn(&Path) -> Result<(), Box<dyn Error>> + Send + Sync,
154-
{
155-
let is_multiple = csv_files.len() > 1;
156-
157-
if parallel && is_multiple {
158-
// Parallel processing
159-
let errors = Mutex::new(Vec::new());
160-
161-
csv_files.par_iter().for_each(|input_file| {
162-
if let Err(e) = processor(input_file) {
163-
error!("Error processing {}: {}", input_file.display(), e);
164-
errors
165-
.lock()
166-
.expect("Failed to acquire lock on error collection")
167-
.push((input_file.clone(), e.to_string()));
168-
}
169-
});
170-
171-
let errors = errors
172-
.into_inner()
173-
.expect("Failed to extract errors from mutex");
174-
if !errors.is_empty() {
175-
error!("{} file(s) failed to process", errors.len());
176-
for (file, err) in &errors {
177-
error!(" {}: {}", file.display(), err);
178-
}
179-
return Err(format!("{} file(s) failed to process", errors.len()).into());
180-
}
181-
} else {
182-
// Sequential processing
183-
let mut failures = 0usize;
184-
for input_file in csv_files {
185-
if let Err(e) = processor(input_file) {
186-
if !is_multiple {
187-
return Err(e);
188-
}
189-
failures += 1;
190-
error!("Error processing {}: {}", input_file.display(), e);
191-
}
192-
}
193-
if failures > 0 {
194-
error!("{} file(s) failed to process", failures);
195-
}
196-
}
197-
198-
Ok(())
199-
}
200-
201135
// ============================================================================
202136
// User Input Utilities
203137
// ============================================================================

sim/src/main.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ use strapdown::rbpf::{RaoBlackwellizedParticleFilter, RbpfConfig};
4040
// Geophysical navigation imports (feature-gated)
4141
#[cfg(feature = "geonav")]
4242
use geonav::{
43-
GeoMap, GeophysicalMeasurementType, GravityMeasurement, GravityResolution,
44-
MagneticAnomalyMeasurement, MagneticResolution, build_event_stream as geo_build_event_stream,
45-
geo_closed_loop_ekf, geo_closed_loop_ukf,
43+
GeoMap, GeophysicalAnomalyMeasurementModel, GeophysicalMeasurementType, GravityMeasurement,
44+
GravityResolution, MagneticAnomalyMeasurement, MagneticResolution,
45+
build_event_stream as geo_build_event_stream, geo_closed_loop_ekf, geo_closed_loop_ukf,
4646
};
4747
#[cfg(feature = "geonav")]
4848
use std::rc::Rc;
@@ -504,7 +504,7 @@ fn process_file(
504504
let pf_cfg = config
505505
.particle_filter
506506
.clone()
507-
.unwrap_or_else(strapdown::sim::ParticleFilterConfig::default);
507+
.unwrap_or_default();
508508
let mut rbpf = RaoBlackwellizedParticleFilter::new(
509509
nominal,
510510
RbpfConfig {
@@ -519,7 +519,7 @@ fn process_file(
519519
let mut results = Vec::with_capacity(event_stream.events.len());
520520
let mut last_ts: Option<chrono::DateTime<chrono::Utc>> = None;
521521

522-
for (idx, event) in event_stream.events.into_iter().enumerate() {
522+
for event in event_stream.events.into_iter() {
523523
let elapsed_s = match &event {
524524
Event::Imu { elapsed_s, .. } => *elapsed_s,
525525
Event::Measurement { elapsed_s, .. } => *elapsed_s,
@@ -1343,7 +1343,7 @@ fn run_particle_filter(args: &ParticleFilterSimArgs) -> Result<(), Box<dyn Error
13431343
let mut results = Vec::with_capacity(event_stream.events.len());
13441344
let mut last_ts: Option<chrono::DateTime<chrono::Utc>> = None;
13451345

1346-
for (idx, event) in event_stream.events.into_iter().enumerate() {
1346+
for event in event_stream.events.into_iter() {
13471347
let elapsed_s = match &event {
13481348
Event::Imu { elapsed_s, .. } => *elapsed_s,
13491349
Event::Measurement { elapsed_s, .. } => *elapsed_s,

0 commit comments

Comments
 (0)