Ejemplo n.º 1
0
        public void TestContains()
        {
            var pq = new PriorityQueue <int>(Enumerable.Range(0, 1000));

            pq.Contains(-1).ShouldEqual(false);
            pq.Contains(999).ShouldEqual(true);
            pq.Contains(500).ShouldEqual(true);
            pq.Contains(1000).ShouldEqual(false);

            var absoluteQueue = new PriorityQueue <int>(Comparers.Create <int, int>(Math.Abs));

            absoluteQueue.Contains(9000).ShouldEqual(false);
            absoluteQueue.Add(9000);
            absoluteQueue.Contains(9000).ShouldEqual(true);
            absoluteQueue.Contains(-9000).ShouldEqual(true);
        }
Ejemplo n.º 2
0
        public void TestRemove()
        {
            var pq = new PriorityQueue <int> {
                1, 2, 3, 4, 5, 6
            };

            pq.Remove(3).ShouldEqual(true);
            pq.Count.ShouldEqual(5);
            pq.Remove(3).ShouldEqual(false);
            pq.Count.ShouldEqual(5);
            pq.Remove(0).ShouldEqual(false);
            pq.Dequeue().ShouldEqual(1);
            pq.Remove(2).ShouldEqual(true);
            pq.Dequeue().ShouldEqual(4);
            pq.Remove(6).ShouldEqual(true);
            pq.Dequeue().ShouldEqual(5);
            pq.Count.ShouldEqual(0);

            var absoluteQueue = new PriorityQueue <int>(Comparers.Create <int, int>(Math.Abs));

            absoluteQueue.Remove(2).ShouldEqual(false);
            absoluteQueue.Enqueue(2);
            absoluteQueue.Remove(-2).ShouldEqual(true);
        }