public void MaxHeapSupportsConsumingEnumerable()
        {
            int testOrder = 2;

            IList <int> testCollection = new List <int> {
                50, 51, 38, 37, 23, 11, 5, 3
            };

            var maxDHeap = new MaxDHeap <int>(testOrder, testCollection.Randomize());

            var consumingEnumerator = maxDHeap.GetConsumingEnumerable().GetEnumerator();

            Assert.DoesNotThrow(() =>
            {
                while (consumingEnumerator.MoveNext())
                {
                    //ignore empty block
                }
            });
        }
        public void MaxHeapConsumingEnumerableRemovesAllElements()
        {
            const int expectedCount = 0;

            int testOrder = 2;

            IList <int> testCollection = new List <int> {
                50, 51, 38, 37, 23, 11, 5, 3
            };

            var maxDHeap = new MaxDHeap <int>(testOrder, testCollection.Randomize());

            var consumingEnumerator = maxDHeap.GetConsumingEnumerable().GetEnumerator();

            while (consumingEnumerator.MoveNext())
            {
                //ignore empty block
            }

            Assert.AreEqual(expectedCount, maxDHeap.Count);
        }