Esempio n. 1
0
        public void TestDuplication()
        {
            var numbers = new [] { -1, -1, -1, 1, 1, 2, 3, 9, 20, 15, 11 }.ToList();

            var queue = new PriorityQueue<int>(1, Comparer<int>.Create((x, y) => x - y));
            numbers.ForEach(queue.Offer);
            Assert.AreEqual(-1, queue.ToArray()[0]);

            queue = new PriorityQueue<int>(3, Comparer<int>.Create((x, y) => x - y));
            numbers.ForEach(queue.Offer);
            queue.ToList().ForEach(x => Assert.AreEqual(-1, x));

            queue = new PriorityQueue<int>(4, Comparer<int>.Create((x, y) => x - y));
            numbers.ForEach(queue.Offer);
            Assert.AreEqual(1, queue.OrderBy(x => x).Last());

            queue = new PriorityQueue<int>(100, Comparer<int>.Create((x, y) => x - y));
            numbers.ForEach(queue.Offer);
            Assert.AreEqual(20, queue.OrderBy(x => x).Last());
        }