public void Heap_HasMinHeapProperty_AfterConstruction(List <int> data) { // Act var heap = new MinHeap <int>(data); // Assert HeapAssertions.IsMinHeap(heap); }
public void RemoveValue_NotInHeap_ReturnsFalse(List <int> data) { // Arrange var heap = new MinHeap <int>(data); // Act var removed = heap.Remove(1000); // Assert Assert.False(removed); Assert.Equal(data.Count(), heap.Count); HeapAssertions.IsMinHeap(heap); }
public void Peek_GetsLowestItem_AndDoesntChangeHeapSize(List <int> data) { // Arrange var heap = new MinHeap <int>(data); // Act var top = heap.Peek(); // Assert Assert.Equal(data.Min(), top); Assert.Equal(data.Count(), heap.Count); HeapAssertions.IsMinHeap(heap); }
public void Pop_MaintainsMinHeapProperty_AndReturnsLowestValue(List <int> data) { // Arrange var heap = new MinHeap <int>(data); // Act var top = heap.Pop(); // Assert Assert.Equal(data.Min(), top); Assert.Equal(data.Count() - 1, heap.Count); HeapAssertions.IsMinHeap(heap); }
public void Add_MaintainsMinHeapProperty(List <int> data, int valueToAdd) { // Arrange var startCount = data.Count; var heap = new MinHeap <int>(data); // Act heap.Add(valueToAdd); // Assert Assert.Equal(startCount + 1, heap.Count); HeapAssertions.IsMinHeap(heap); }
public void RemoveValueInHeap_MaintainsMinHeapProperty_AndReturnsTrue(List <int> data) { // Arrange var startCount = data.Count; var heap = new MinHeap <int>(data); // Act var removed = heap.Remove(data[0]); // Assert Assert.True(removed); Assert.Equal(startCount - 1, heap.Count); HeapAssertions.IsMinHeap(heap); }