1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
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); } }