mirror of
https://github.com/pezkuwichain/pezkuwi-telemetry.git
synced 2026-06-12 08:51:11 +00:00
Fix typo incrementing instead of decrementing (#595)
* fix: typo incrementing instead of decrementing * Add tests for MostSeen decrement bug This bug requires a specific set of circumstances to trigger and become visible: 1. decrement a label that is non-zero but not first 2. repeat the decrement at least best_count()/2 times 3. increment that label 4. check the best count --------- Co-authored-by: teor <teor@riseup.net>
This commit is contained in:
@@ -124,7 +124,7 @@ impl<T: Hash + Eq + Clone> MostSeen<T> {
|
||||
|
||||
// Item is in the map; not the best anyway. decrement count.
|
||||
if let Some(count) = self.others.get_mut(item) {
|
||||
*count += 1;
|
||||
*count = count.saturating_sub(1);
|
||||
}
|
||||
ChangeResult::NoChange
|
||||
}
|
||||
@@ -248,5 +248,11 @@ mod test {
|
||||
assert!(res.has_changed());
|
||||
assert_eq!(a.best_count(), 2);
|
||||
assert_eq!(*a.best(), "First"); // First is now ahead
|
||||
|
||||
a.remove(&"Third"); // 0, or 2 with bug #595
|
||||
a.remove(&"Third"); // 0, or 4 with bug #595
|
||||
a.insert(&"Third"); // 1, or 5 with bug #595
|
||||
assert_eq!(a.best_count(), 2);
|
||||
assert_eq!(*a.best(), "First"); // First is still ahead
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user