public void ShouldPopFromEmptyQueueForReferenceTypes() { IPriorityQueue <ReferenceTypeWrapper> priorityQueue = new PriorityQueue <ReferenceTypeWrapper>(new CompareReferenceTypeWrapper()); var one = new ReferenceTypeWrapper(1); priorityQueue.Push(one); priorityQueue.Pop().Value.ShouldBe(1); priorityQueue.Pop().ShouldBe(null); }
public void ShouldMaintainOrderedQueue() { IPriorityQueue <ReferenceTypeWrapper> priorityQueue = new PriorityQueue <ReferenceTypeWrapper>(new CompareReferenceTypeWrapper()); var one = new ReferenceTypeWrapper(1); var two = new ReferenceTypeWrapper(2); var three = new ReferenceTypeWrapper(3); var four = new ReferenceTypeWrapper(4); priorityQueue.Push(three); priorityQueue.Push(two); priorityQueue.Push(four); priorityQueue.Push(one); one.Value = 8; two.Value = 7; three.Value = 6; four.Value = 5; priorityQueue.Pop().Value.ShouldBe(5); priorityQueue.Pop().Value.ShouldBe(6); priorityQueue.Pop().Value.ShouldBe(7); priorityQueue.Pop().Value.ShouldBe(8); }