pyority_queue/tests/indexed_binary_heap.rs

30 lines
978 B
Rust

#[cfg(test)]
mod tests {
use pyority_queue::backing::indexed::{IndexedBacking, IndexedBinaryHeap};
#[test]
fn test_indexed_binary_heap_manual_creation() {
let mut heap = IndexedBinaryHeap::new();
heap.set(4, 0.5);
heap.set(-3, 0.01);
heap.set(6, 0.9);
heap.set(1, 0.2);
assert_eq!(heap.len(), 4);
assert_eq!(heap.pop(), Some(-3));
assert_eq!(heap.pop(), Some(1));
assert_eq!(heap.pop(), Some(4));
assert_eq!(heap.pop(), Some(6));
assert_eq!(heap.pop(), None);
}
#[test]
fn test_indexed_binary_heap_from_iter() {
let mut heap = IndexedBinaryHeap::from_iter(vec![("c", 7), ("a", 3), ("b", 6), ("d", 9)]);
assert_eq!(heap.len(), 4);
assert_eq!(heap.pop(), Some("a"));
assert_eq!(heap.pop(), Some("b"));
assert_eq!(heap.pop(), Some("c"));
assert_eq!(heap.pop(), Some("d"));
assert_eq!(heap.pop(), None);
}
}