ACTUALLY fix SteppedVector

This commit is contained in:
Simon Gardling 2022-03-22 14:01:54 -04:00
parent 0cd8f28aad
commit b89cf04dcc

View File

@ -99,9 +99,6 @@ impl From<Vec<f64>> for SteppedVector {
min = data[0]; min = data[0];
} }
assert!(min >= 0.0);
assert!(max >= 0.0);
// Calculate the step between elements // Calculate the step between elements
let step = (max - min).abs() / (data_length as f64); let step = (max - min).abs() / (data_length as f64);
@ -117,17 +114,12 @@ impl From<Vec<f64>> for SteppedVector {
#[test] #[test]
fn stepped_vector_test() { fn stepped_vector_test() {
let min = 0; let min: i32 = -10;
let max = 10; let max: i32 = 10;
let data: Vec<f64> = (min..=max).map(|x| x as f64).collect(); let data: Vec<f64> = (min..=max).map(|x| x as f64).collect();
let len_data = data.len(); let len_data = data.len();
let stepped_vector: SteppedVector = data.into(); let stepped_vector: SteppedVector = data.into();
assert_eq!(
stepped_vector.get_data(),
vec![0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
);
assert_eq!(stepped_vector.get_min(), min as f64); assert_eq!(stepped_vector.get_min(), min as f64);
assert_eq!(stepped_vector.get_max(), max as f64); assert_eq!(stepped_vector.get_max(), max as f64);
@ -135,11 +127,14 @@ fn stepped_vector_test() {
assert_eq!(stepped_vector.get_index(max as f64), Some(len_data - 1)); assert_eq!(stepped_vector.get_index(max as f64), Some(len_data - 1));
for i in min..=max { for i in min..=max {
assert_eq!(stepped_vector.get_index(i as f64), Some(i)); assert_eq!(
stepped_vector.get_index(i as f64),
Some((i + min.abs()) as usize)
);
} }
assert_eq!(stepped_vector.get_index(-1.0), None); assert_eq!(stepped_vector.get_index((min - 1) as f64), None);
assert_eq!(stepped_vector.get_index(11.0), None); assert_eq!(stepped_vector.get_index((max + 1) as f64), None);
} }
// Rounds f64 to specific number of decimal places // Rounds f64 to specific number of decimal places