public void Test_Enqueue_Dequeue() { var heap = BinaryHeap.Create <int>(); heap.Count.Is(0); Assert.ThrowsAny <Exception>(() => heap.Dequeue()); Assert.ThrowsAny <Exception>(() => heap.Peek()); heap.Enqueue(1); heap.Count.Is(1); heap.Peek().Is(1); // Test to add a value larger than min. { heap.Enqueue(2); heap.Count.Is(2); heap.Peek().Is(1); var x = heap.Dequeue(); heap.Count.Is(1); x.Is(1); } // Test to add a value less than min. { heap.Enqueue(0); heap.Count.Is(2); heap.Peek().Is(0); var x = heap.Dequeue(); heap.Count.Is(1); x.Is(0); } }
public void Test_GetEnumerator() { var n = 100; var heap = BinaryHeap.Create <int>(); var xs = UnorderedSeq(n).ToArray(); foreach (var x in xs) { heap.Enqueue(x); } var actual = heap.OrderBy(x => x); Array.Sort(xs); actual.IsSeq(xs); }