]> git.lizzy.rs Git - rust.git/blob - src/tools/miri/tests/pass/binary-heap.rs
Add 'src/tools/miri/' from commit '75dd959a3a40eb5b4574f8d2e23aa6efbeb33573'
[rust.git] / src / tools / miri / tests / pass / binary-heap.rs
1 use std::collections::BinaryHeap;
2 use std::iter::Iterator;
3
4 fn zero_sized_push() {
5     const N: usize = 8;
6
7     for len in 0..N {
8         let mut tester = BinaryHeap::with_capacity(len);
9         assert_eq!(tester.len(), 0);
10         assert!(tester.capacity() >= len);
11         for _ in 0..len {
12             tester.push(());
13         }
14         assert_eq!(tester.len(), len);
15         assert_eq!(tester.iter().count(), len);
16         tester.clear();
17     }
18 }
19
20 fn drain() {
21     let mut heap = (0..128i32).collect::<BinaryHeap<_>>();
22
23     assert!(!heap.is_empty());
24
25     let mut sum = 0;
26     for x in heap.drain() {
27         sum += x;
28     }
29     assert_eq!(sum, 127 * 128 / 2);
30
31     assert!(heap.is_empty());
32 }
33
34 fn main() {
35     zero_sized_push();
36     drain();
37 }