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); }