| use std::collections::BinaryHeap; | |
| fn zero_sized_push() { | |
| const N: usize = 8; | |
| for len in 0..N { | |
| let mut tester = BinaryHeap::with_capacity(len); | |
| assert_eq!(tester.len(), 0); | |
| assert!(tester.capacity() >= len); | |
| for _ in 0..len { | |
| tester.push(()); | |
| } | |
| assert_eq!(tester.len(), len); | |
| assert_eq!(tester.iter().count(), len); | |
| tester.clear(); | |
| } | |
| } | |
| fn drain() { | |
| let mut heap = (0..128i32).collect::<BinaryHeap<_>>(); | |
| assert!(!heap.is_empty()); | |
| let mut sum = 0; | |
| for x in heap.drain() { | |
| sum += x; | |
| } | |
| assert_eq!(sum, 127 * 128 / 2); | |
| assert!(heap.is_empty()); | |
| } | |
| fn main() { | |
| zero_sized_push(); | |
| drain(); | |
| } |