예제 #1
0
        public void TestMaintainBottomN()
        {
            const int N       = 10;
            var       numbers = Enumerable.Range(0, 1000).Shuffled(Rand.CreateJavaRandom(1));

            var pq = new PriorityQueue <int>(Comparers.Reverse <int>());

            foreach (var n in numbers)
            {
                pq.Enqueue(n);
                if (pq.Count > N)
                {
                    pq.Dequeue();
                }
            }

            pq.CollectionEquals(Enumerable.Range(0, N)).ShouldEqual(true);
        }