prioq 0.1.2

Priority Queue implemented using std::collections::BinaryHeap.
Documentation
mod priority_queues;
pub use self::priority_queues::{PriorityQueue,ReversePriorityQueue};

#[cfg(test)]
mod tests {
    use priority_queues::{PriorityQueue, ReversePriorityQueue};

    fn new_test_priority_queue<'a>() -> PriorityQueue<i32, &'a str>{
        let mut q = PriorityQueue::new();

        q.push(2, "a");
        q.push(-52, "b");
        q.push(9, "c");

        q
    }

    fn new_test_reverse_priority_queue<'a>() -> ReversePriorityQueue<i32, &'a str>{
        let mut q = ReversePriorityQueue::new();

        q.push(2, "a");
        q.push(-52, "b");
        q.push(9, "c");

        q
    }

    #[test]
    fn test_priority_queue_pop(){
        let mut q = new_test_priority_queue();

        assert_eq!(q.pop().unwrap(),(9, "c"));
        assert_eq!(q.pop().unwrap(),(2, "a"));
        assert_eq!(q.pop().unwrap(),(-52, "b"));
        assert_eq!(q.pop(),None);
    }

    #[test]
    fn test_reverse_priority_queue_pop(){
        let mut q = new_test_reverse_priority_queue();

        assert_eq!(q.pop().unwrap(),(-52, "b"));
        assert_eq!(q.pop().unwrap(),(2, "a"));
        assert_eq!(q.pop().unwrap(),(9, "c"));
        assert_eq!(q.pop(),None);
    }

    #[test]
    fn test_priority_queue_peek(){
        let mut q = new_test_priority_queue();

        assert_eq!(q.peek().unwrap(),(&9, &"c"));
        assert_eq!(q.pop().unwrap(),(9, "c"));
        assert_eq!(q.peek().unwrap(),(&2, &"a"));
        assert_eq!(q.pop().unwrap(),(2, "a"));
        assert_eq!(q.peek().unwrap(),(&-52, &"b"));
        assert_eq!(q.peek().unwrap(),(&-52, &"b"));
        assert_eq!(q.pop().unwrap(),(-52, "b"));
        assert_eq!(q.peek(),None);
        assert_eq!(q.pop(),None);
    }

    #[test]
    fn test_reverse_priority_queue_peek(){
        let mut q = new_test_reverse_priority_queue();

        assert_eq!(q.peek().unwrap(),(&-52, &"b"));
        assert_eq!(q.pop().unwrap(),(-52, "b"));
        assert_eq!(q.peek().unwrap(),(&2, &"a"));
        assert_eq!(q.pop().unwrap(),(2, "a"));
        assert_eq!(q.peek().unwrap(),(&9, &"c"));
        assert_eq!(q.peek().unwrap(),(&9, &"c"));
        assert_eq!(q.pop().unwrap(),(9, "c"));
        assert_eq!(q.peek(),None);
        assert_eq!(q.pop(),None);
    }

}