test: strengthen durable behavior coverage after review
This commit is contained in:
14 files changed
+1063
-85
No files matched your search
@@ -199,10 +199,23 @@ mod tests {
|
||||
) {
|
||||
let mut tracker = IpdvTracker::new(Some(limit));
|
||||
for seq in seqs {
|
||||
tracker.insert(ipdv_sample(seq, i128::from(seq)));
|
||||
let completed_before = tracker.completed_pairs.clone();
|
||||
let pairs = tracker.insert(ipdv_sample(seq, i128::from(seq)));
|
||||
let emitted: HashSet<_> = pairs.iter().map(|pair| pair.current_seq).collect();
|
||||
prop_assert_eq!(emitted.len(), pairs.len());
|
||||
prop_assert!(emitted.is_disjoint(&completed_before), "a retained pair must not be emitted twice");
|
||||
prop_assert!(tracker.samples.len() <= limit);
|
||||
prop_assert!(tracker.sample_order.len() <= limit);
|
||||
prop_assert!(tracker.completed_pairs.len() <= limit);
|
||||
// Eviction must remove stale pair markers as well as samples;
|
||||
// otherwise retained state can prevent future adjacent pairs.
|
||||
prop_assert_eq!(tracker.sample_order.len(), tracker.samples.len());
|
||||
prop_assert_eq!(tracker.sample_order.iter().collect::<HashSet<_>>().len(), tracker.samples.len());
|
||||
prop_assert!(tracker.sample_order.iter().all(|seq| tracker.samples.contains_key(seq)));
|
||||
prop_assert!(tracker.completed_pairs.iter().all(|seq| {
|
||||
tracker.samples.contains_key(seq)
|
||||
&& tracker.samples.contains_key(&seq.wrapping_sub(1))
|
||||
}), "completed pairs must retain both sequence endpoints");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user