extern crate ordermap;
mod pqueue;
pub use pqueue::PriorityQueue;
#[cfg(test)]
mod tests {
pub use PriorityQueue;
#[test]
fn init(){
let pq: PriorityQueue<String, i32> = PriorityQueue::new();
println!("{:?}", pq);
}
#[test]
fn push_pop() {
let mut pq = PriorityQueue::new();
pq.push("a", 1);
pq.push("b", 2);
println!("{:?}", pq);
assert_eq!(pq.pop(), Some(("b", 2)));
assert_eq!(pq.pop(), Some(("a", 1)));
assert_eq!(pq.pop(), None);
}
#[test]
fn push_pop2() {
let mut pq = PriorityQueue::new();
pq.push("a", 1);
pq.push("b", 2);
pq.push("f", 7);
pq.push("g", 4);
pq.push("h", 3);
println!("{:?}", pq);
assert_eq!(pq.pop(), Some(("f", 7)));
println!("{:?}", pq);
assert_eq!(pq.peek(), Some((&"g", &4)));
assert_eq!(pq.pop(), Some(("g", 4)));
assert_eq!(pq.len(), 3);
}
}