public void MinHeapDoesNotInsertItemAsRootIfItemIsLargerThanOriginalRoot()
        {
            int         testOrder      = 2;
            IList <int> testCollection = new List <int> {
                50, 51, 38, 37, 23, 11, 5, 3
            };

            var minDHeap = new MinDHeap <int>(testOrder, testCollection.Randomize());

            int originalRoot = minDHeap.Peek();

            minDHeap.Insert(4);

            int newRoot = minDHeap.Peek();

            Assert.AreEqual(3, originalRoot);
            Assert.AreEqual(3, newRoot);
        }
        public void MinHeapsRootIsTheSmallestValue()
        {
            int         testOrder      = 2;
            IList <int> testCollection = new List <int> {
                50, 51, 38, 37, 23, 11, 5, 3
            };

            var minDHeap = new MinDHeap <int>(testOrder, testCollection.Randomize());

            int root = minDHeap.Peek();

            Assert.AreEqual(3, root);
        }
        public void MinHeapInsertsItemInCollectionAsRootIfItemIsSmallerThanOriginalRoot()
        {
            int testOrder = 2;

            IList <int> testCollection = new List <int> {
                50, 51, 38, 37, 23, 11, 5, 3
            };
            IList <int> newCollection = new List <int> {
                2, 4, 6, 8, 10, 12, 14, 16, 18
            };

            var minDHeap = new MinDHeap <int>(testOrder, testCollection.Randomize());

            int originalRoot = minDHeap.Peek();

            minDHeap.InsertRange(newCollection.Randomize());

            int newRoot = minDHeap.Peek();

            Assert.AreEqual(3, originalRoot);
            Assert.AreEqual(2, newRoot);
        }
        public void MinHeapMovesNextSmallestValueToRootAfterRemoveRoot()
        {
            int         testOrder      = 2;
            IList <int> testCollection = new List <int> {
                50, 51, 38, 37, 23, 11, 5, 3
            };

            var minDHeap = new MinDHeap <int>(testOrder, testCollection.Randomize());

            minDHeap.RemoveRoot();

            int newRoot = minDHeap.Peek();

            Assert.AreEqual(5, newRoot);
        }