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