| 69 | |
| 70 | #[test] |
| 71 | fn max_pq() { |
| 72 | //case-1, test insert & del_max |
| 73 | let t = vec![4, 1, 3, 2, 16, 9, 10, 14, 8, 7]; |
| 74 | let mut max_pq = PQ::new_max_pq(t.len()); |
| 75 | for v in &t { |
| 76 | max_pq.enqueue(*v); |
| 77 | } |
| 78 | assert!(!max_pq.is_empty()); |
| 79 | assert_eq!(t.len(), max_pq.len()); |
| 80 | assert_eq!(Some(16), max_pq.peek().cloned()); |
| 81 | for v in vec![16, 14, 10, 9, 8, 7, 4, 3, 2, 1] { |
| 82 | assert_eq!(max_pq.dequeue(), Some(v)); |
| 83 | } |
| 84 | assert!(max_pq.is_empty()); |
| 85 | assert_eq!(0, max_pq.len()); |
| 86 | assert_eq!(None, max_pq.peek()); |
| 87 | assert_eq!(max_pq.dequeue(), None); |
| 88 | } |
| 89 | |
| 90 | #[test] |
| 91 | fn index_min_pq() { |