30 lines
978 B
Rust
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);
|
|
}
|
|
}
|