12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- use mini_avl::Set;
- use std::ops::{Add, Sub};
- #[test]
- fn test_count() {
- let mut set = Set::new();
- for i in 1..11 {
- assert!(set.insert(i));
- assert_eq!(set.count(), i);
- }
- for i in 1..11 {
- assert_eq!(set.count_lt(&i), i - 1);
- assert_eq!(set.count_le(&i), i);
- assert_eq!(set.count_ge(&i), 11 - i);
- assert_eq!(set.count_gt(&i), 10 - i);
- }
- }
- #[test]
- fn test_bounds_simple() {
- let mut set = Set::new();
- set.insert(1);
- set.insert(5);
- set.insert(9);
- assert_eq!(set.lower_bound(&-1), Some(&1));
- assert_eq!(set.lower_bound(&1), Some(&1));
- assert_eq!(set.lower_bound(&3), Some(&5));
- assert_eq!(set.lower_bound(&5), Some(&5));
- assert_eq!(set.lower_bound(&7), Some(&9));
- assert_eq!(set.lower_bound(&9), Some(&9));
- assert_eq!(set.lower_bound(&11), None);
- }
- #[test]
- fn test_bounds() {
- let mut values = vec![5, 3, 7, 1, 4, 6, 9];
- let mut set = Set::new();
- for v in values.iter() {
- set.insert(*v);
- }
- values.sort();
- let mut iter = values.iter();
- let mut lb = iter.next();
- for i in values.first().unwrap().sub(1)..values.last().unwrap().add(2) {
- while lb.map_or(false, |v| *v < i) {
- lb = iter.next();
- }
- assert_eq!(set.lower_bound(&i), lb);
- }
- }
|