示例#1
0
        public void FindMinTest()
        {
            var heap = Enumerable.Range(0, 8).Aggregate(BinomialHeap <int> .Empty, (current, i) => BinomialHeap <int> .Insert(i, current));
            var min  = BinomialHeap <int> .FindMin(heap);

            Assert.AreEqual(0, min);
        }
示例#2
0
        public void DeleteLotsOfMinsTest()
        {
            const int size   = 1000;
            var       random = new Random(3456);
            var       heap   = BinomialHeap <int> .Empty;

            for (var i = 0; i < size; i++)
            {
                heap = BinomialHeap <int> .Insert(random.Next(size), heap);
            }

            var last  = 0;
            var count = 0;

            while (!BinomialHeap <int> .IsEmpty(heap))
            {
                var next = BinomialHeap <int> .FindMin(heap);

                heap = BinomialHeap <int> .DeleteMin(heap);

                Assert.IsTrue(last <= next);
                last = next;
                count++;
            }
            Assert.AreEqual(size, count);
        }
示例#3
0
        public void FindMinEmptyTest()
        {
            var empty = BinomialHeap <int> .Empty;

            AssertThrows <ArgumentNullException>(() => BinomialHeap <int> .FindMin(empty));
        }