public void ShouldPopFromEmptyQueueForReferenceTypes() { var one = new PrioritizableItem(1); _priorityQueue.Push(one); _priorityQueue.Pop().Value.ShouldBe(1); _priorityQueue.Pop().ShouldBe(null); }
public void Setup() { _priorityQueue = new PriorityQueue <PrioritizableItem>(new ComparePrioritizableItem()); _one = new PrioritizableItem(1); _two = new PrioritizableItem(2); _three = new PrioritizableItem(3); _four = new PrioritizableItem(4); _five = new PrioritizableItem(5); _six = new PrioritizableItem(6); _seven = new PrioritizableItem(7); }
public void ShouldSortOnlyAfterChange() { IPriorityQueue <PrioritizableItem> priorityQueue = new PriorityQueue <PrioritizableItem>(new ComparePrioritizableItem()); var one = new PrioritizableItem(1); var two = new PrioritizableItem(2); var three = new PrioritizableItem(3); var four = new PrioritizableItem(4); priorityQueue.Push(three); priorityQueue.Push(two); priorityQueue.Push(four); priorityQueue.Push(one); priorityQueue.Pop().Value.ShouldBe(1); two.Value = 99; priorityQueue.Pop().Value.ShouldBe(3); priorityQueue.Pop().Value.ShouldBe(4); Assert.Inconclusive("Need to assert that sort was called only twice"); }
public void ShouldMaintainOrderedQueue() { IPriorityQueue <PrioritizableItem> priorityQueue = new PriorityQueue <PrioritizableItem>(new ComparePrioritizableItem()); var one = new PrioritizableItem(1); var two = new PrioritizableItem(2); var three = new PrioritizableItem(3); var four = new PrioritizableItem(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); }