예제 #1
0
        public void Heap_HasMinHeapProperty_AfterConstruction(List <int> data)
        {
            // Act
            var heap = new MinHeap <int>(data);

            // Assert
            HeapAssertions.IsMinHeap(heap);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
        }
예제 #6
0
        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);
        }