Example #1
0
        public void Insert_20_and_4_peek_must_return_4()
        {
            var sut = new MinBinaryHeap(10);

            sut.Insert(20);
            sut.Insert(4);
            Assert.Equal(4, sut.Peek());
        }
Example #2
0
        public void InsertAndExtractSomeNumbers(int[] input, int[] output)
        {
            var sut = new MinBinaryHeap(5);

            foreach (var item in input)
            {
                sut.Insert(item);
            }

            foreach (var item in output)
            {
                Assert.Equal(item, sut.ExtractMin());
            }
        }
Example #3
0
        public void Insert(int value)
        {
            if (IsEmpty())
            {
                minBinaryHeap.Insert(value);
            }
            else if (value > Median())
            {
                minBinaryHeap.Insert(value);
            }
            else
            {
                maxBinaryHeap.Insert(value);
            }

            if (minBinaryHeap.Size() > maxBinaryHeap.Size() + 1)
            {
                maxBinaryHeap.Insert(minBinaryHeap.ExtractMin());
            }
            else if (maxBinaryHeap.Size() > minBinaryHeap.Size() + 1)
            {
                minBinaryHeap.Insert(maxBinaryHeap.ExtractMax());
            }
        }
Example #4
0
        public void Insert_when_running_out_space_throws_exception()
        {
            var sut = new MinBinaryHeap(0);

            Assert.Throws <InvalidOperationException>(() => sut.Insert(1));
        }