コード例 #1
0
        public void TestFancierBinaryHeap(int size = 100)
        {
            IPriorityQ <int> q = new FancierBinaryHeap <int>();

            WriteLine("Flushing in a array of randomized unique integers.");
            var RandomizedArray = GetRandomizedIntSequence(size);

            for (int i = 0; i < size; q.Enqueue(RandomizedArray[i]), i++)
            {
                ;
            }
            WriteLine("Confirming all integers are there.");
            for (int i = 1; i <= size; i++)
            {
                Assert.IsTrue(q.Contains(i));
            }
            WriteLine("Removing all the odd integers there.");
            for (int i = 1; i <= size; i += 2)
            {
                q.Remove(i);
                Assert.IsTrue(!q.Contains(i));
            }
            WriteLine("Assert all remaining even elements are properly odered");
            for (int i = 2; i <= size; i += 2)
            {
                Assert.IsTrue(q.RemoveMin() == i);
            }
        }
コード例 #2
0
        public void TestFancierBinaryHeapExpectedExceptions()
        {
            IPriorityQ <int> q    = new FancierBinaryHeap <int>();
            TestDelegate     test = () =>
            {
                q.RemoveMin();
            };

            AssertThrow <InvalidOperationException>(test);
            q.Enqueue(1);
            test = () => {
                q.Enqueue(1);
            };
            AssertThrow <InvalidArgumentException>(test);
            IPriorityQ <string> qq = new FancierBinaryHeap <string>();

            test = () =>
            {
                qq.Enqueue(null);
            };
            AssertThrow <InvalidArgumentException>(test);
        }