test: strengthen durable behavior coverage after review

This commit is contained in:
Nils Andreas Svee committed 2026-10-02 15:14:05 +07:00
1 parent 3290a7508a
commit e115b96f21
14 files changed
+1063 -85

No files matched your search

+14 -1
View File
@@ -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");
}
}