public void TestMinHeapInsert() { var heap = LockedBinaryHeap <int> .CreateMinHeap(); heap.Insert(10); Assert.AreEqual(10, heap.Root); }
public void TestMinHeapResize() { var heap = LockedBinaryHeap <int> .CreateMinHeap(2); heap.Insert(10); heap.Insert(20); heap.Insert(30); Assert.True(heap.Size > 2); }
public void TestMinHeapRemovesRoot() { var heap = LockedBinaryHeap <int> .CreateMinHeap(); heap.Insert(10); heap.Insert(20); var removed = heap.TryRemoveRoot(out var root); Assert.True(removed); Assert.AreEqual(10, root); Assert.AreEqual(20, heap.Root); }
public void TestMinHeapOrderedRemoval() { var heap = LockedBinaryHeap <int> .CreateMinHeap(); var random = new Random(0); for (int i = 0; i < 1000; i++) { heap.Insert(random.Next()); } int last = -1; while (heap.TryRemoveRoot(out var root)) { Assert.GreaterOrEqual(root, last); last = root; } }
public void TestInvalidMinHeapSizeThrows() { Assert.Throws <IndexOutOfRangeException>(() => LockedBinaryHeap <int> .CreateMinHeap(-1)); }
public void TestMinHeapRemoveFalseWhenEmpty() { var heap = LockedBinaryHeap <int> .CreateMinHeap(); Assert.False(heap.TryRemoveRoot(out var r)); }
public void TestMinHeapEmpty() { var heap = LockedBinaryHeap <int> .CreateMinHeap(); Assert.True(heap.IsEmpty); }