WIP
This commit is contained in:
@@ -68,10 +68,7 @@ fn exp_u64<'a>(
|
||||
}
|
||||
if let (Some(val), Some(exp)) = (a, b) {
|
||||
if val != exp {
|
||||
return Err(Error::AssertMsg(format!(
|
||||
"{tag} expect close value {} vs {}",
|
||||
val, exp
|
||||
)));
|
||||
return Err(Error::AssertMsg(format!("{tag} expect value {} vs {}", val, exp)));
|
||||
}
|
||||
} else {
|
||||
return Err(Error::AssertMsg(format!("{tag} len mismatch")));
|
||||
@@ -97,7 +94,7 @@ fn exp_avgs(bins: &ContainerBins<f32>, exps: impl IntoVecDequeF32) -> Result<(),
|
||||
if let (Some(a), Some(&exp)) = (a, b) {
|
||||
let val = *a.avg as f32;
|
||||
if netpod::f32_close(val, exp) == false {
|
||||
return Err(Error::AssertMsg(format!("expect close value {} vs {}", val, exp)));
|
||||
return Err(Error::AssertMsg(format!("expect value {} vs {}", val, exp)));
|
||||
}
|
||||
} else {
|
||||
return Err(Error::AssertMsg(format!(
|
||||
@@ -260,6 +257,90 @@ fn test_bin_events_f32_small_range_final() -> Result<(), Error> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_bin_events_f32_small_intermittent_silence_range_open() -> Result<(), Error> {
|
||||
let beg = TsNano::from_ms(100);
|
||||
let end = TsNano::from_ms(150);
|
||||
let nano_range = NanoRange {
|
||||
beg: beg.ns(),
|
||||
end: end.ns(),
|
||||
};
|
||||
let range = BinnedRange::from_nano_range(nano_range, DtMs::from_ms_u64(10));
|
||||
let mut binner = BinnedEventsTimeweight::new(range);
|
||||
let mut evs = ContainerEvents::<f32>::new();
|
||||
let em = &mut evs;
|
||||
pu(em, 102, 2.0);
|
||||
pu(em, 104, 2.4);
|
||||
binner.ingest(evs)?;
|
||||
let mut evs = ContainerEvents::<f32>::new();
|
||||
let em = &mut evs;
|
||||
pu(em, 111, 1.0);
|
||||
pu(em, 112, 1.2);
|
||||
binner.ingest(evs)?;
|
||||
// TODO take bins already here and assert.
|
||||
// TODO combine all bins together for combined assert.
|
||||
let mut evs = ContainerEvents::<f32>::new();
|
||||
let em = &mut evs;
|
||||
pu(em, 113, 1.4);
|
||||
pu(em, 146, 1.3);
|
||||
pu(em, 148, 1.2);
|
||||
binner.ingest(evs)?;
|
||||
binner.input_done_range_open()?;
|
||||
let bins = binner.output();
|
||||
trace!("{bins:?}");
|
||||
for b in bins.iter_debug() {
|
||||
trace!("{b:?}");
|
||||
}
|
||||
assert_eq!(bins.len(), 5);
|
||||
exp_cnts(&bins, "2 3 0 0 2")?;
|
||||
exp_avgs(&bins, "2.30 1.44 1.4 1.4 1.375")?;
|
||||
let bins = binner.output();
|
||||
assert_eq!(bins.len(), 0);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_bin_events_f32_small_intermittent_silence_range_final() -> Result<(), Error> {
|
||||
let beg = TsNano::from_ms(100);
|
||||
let end = TsNano::from_ms(150);
|
||||
let nano_range = NanoRange {
|
||||
beg: beg.ns(),
|
||||
end: end.ns(),
|
||||
};
|
||||
let range = BinnedRange::from_nano_range(nano_range, DtMs::from_ms_u64(10));
|
||||
let mut binner = BinnedEventsTimeweight::new(range);
|
||||
let mut evs = ContainerEvents::<f32>::new();
|
||||
let em = &mut evs;
|
||||
pu(em, 102, 2.0);
|
||||
pu(em, 104, 2.4);
|
||||
binner.ingest(evs)?;
|
||||
let mut evs = ContainerEvents::<f32>::new();
|
||||
let em = &mut evs;
|
||||
pu(em, 111, 1.0);
|
||||
pu(em, 112, 1.2);
|
||||
binner.ingest(evs)?;
|
||||
// TODO take bins already here and assert.
|
||||
// TODO combine all bins together for combined assert.
|
||||
let mut evs = ContainerEvents::<f32>::new();
|
||||
let em = &mut evs;
|
||||
pu(em, 113, 1.4);
|
||||
pu(em, 146, 1.3);
|
||||
pu(em, 148, 1.2);
|
||||
binner.ingest(evs)?;
|
||||
binner.input_done_range_final()?;
|
||||
let bins = binner.output();
|
||||
trace!("{bins:?}");
|
||||
for b in bins.iter_debug() {
|
||||
trace!("{b:?}");
|
||||
}
|
||||
assert_eq!(bins.len(), 5);
|
||||
exp_cnts(&bins, "2 3 0 0 2")?;
|
||||
exp_avgs(&bins, "2.30 1.44 1.4 1.4 1.34")?;
|
||||
let bins = binner.output();
|
||||
assert_eq!(bins.len(), 0);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_bin_events_enum_simple_range_final() -> Result<(), Error> {
|
||||
let beg = TsNano::from_ms(100);
|
||||
|
||||
Reference in New Issue
Block a user