public void QueueDifferentPrioritiesWorksCorrectly() { //Arrange var queue = new StaticPriorityQueue <string>(); var expected = new string[] { "add '8", "add '3", "add '5", "add '2", "add '10", "add '1", "add '4", "add '7", "add '9", "add '6" }; var result = new string[10]; //Act queue.Enqueue(1, "add '1"); queue.Enqueue(2, "add '2"); queue.Enqueue(5, "add '3"); queue.Enqueue(1, "add '4"); queue.Enqueue(3, "add '5"); queue.Enqueue(0, "add '6"); queue.Enqueue(1, "add '7"); queue.Enqueue(10, "add '8"); queue.Enqueue(1, "add '9"); queue.Enqueue(2, "add '10"); for (int i = 0; i < result.Length; i++) { result[i] = queue.Dequeue(); } //Assert CollectionAssert.AreEqual(expected, result); }
public void TestDequeueing() { var q = new StaticPriorityQueue <double, string>(); q.Enqueue(2, "first item"); q.Enqueue(3, "second item"); q.Enqueue(1, "third item"); var peek = q.Peek(); Assert.Equal("third item", peek.Value); Assert.Equal(3, q.Count); var deq = q.Dequeue(); Assert.Equal("third item", deq.Value); Assert.Equal(2, q.Count); deq = q.Dequeue(); Assert.Equal("first item", deq.Value); Assert.Equal(1, q.Count); }
public void TestInitialData() { var data = new[] { 5, 9, 2, 13, 1, 4, 7, 11, 2 }; var q = new StaticPriorityQueue <int, int>(data.Select(i => new KeyValuePair <int, int>(i, i))); Assert.Equal(data.Length, q.Count); Array.Sort(data); for (int i = 0; i < data.Length; i++) { var deq = q.Dequeue(); Assert.Equal(data[i], deq.Value); } }
public void TestGrowing() { var q = new StaticPriorityQueue <double, string>(); for (int i = 0; i < 32; i++) { q.Enqueue(i, i.ToString()); } Assert.Equal(32, q.Count); for (int i = 0; i < 32; i++) { var deq = q.Dequeue(); Assert.Equal(i.ToString(), deq.Value); } }
public void QueueEnqueueNullCorrectly() { //Arrange var queue = new StaticPriorityQueue <string>(); string expected = null; //Act queue.Enqueue("add '1"); queue.Enqueue("add '2"); queue.Enqueue("add '3"); queue.Enqueue(2, expected); string result = queue.Dequeue(); //Assert Assert.AreEqual(expected, result); }
public void QueueContainsByPriorityAndValueCorrectly() { //Arrange var queue = new StaticPriorityQueue <string>(); //Act queue.Enqueue("add '1"); queue.Enqueue("add '2"); queue.Enqueue("add '3"); queue.Enqueue(2, "add '4"); bool result = queue.Contains(2, "add '4"); queue.Dequeue(); bool next = queue.Contains(2, "add '4"); //Assert Assert.IsFalse(next); Assert.IsTrue(result); }
public void QueueEnqueueValueCorrectly() { //Arrange var queue = new StaticPriorityQueue <string>(); string expected = "add '4"; string nextExpected = "add '1"; //Act queue.Enqueue("add '1"); queue.Enqueue("add '2"); queue.Enqueue("add '3"); queue.Enqueue(2, "add '4"); string result = queue.Peek(); queue.Dequeue(); string next = queue.Peek(); //Assert Assert.AreEqual(expected, result); Assert.AreEqual(nextExpected, next); }
public void QueueEnqueueWithPriorityAndIEnumerableWorksCorrectly() { //Arrange var queue = new StaticPriorityQueue <string>(); var input = new string[] { "add '1", "add '2", "add '3", "add '4" }; var expected = new string[] { "add '2", "add '3", "add '4", "add '5", "add '6" }; var expectedElement = "add '1"; var expectedNextElement = "add '2"; //Act queue.Enqueue(2, input); queue.Enqueue(1, "add '5"); queue.Enqueue(1, "add '6"); var element = queue.Peek(); queue.Dequeue(); var nextElement = queue.Peek(); var result = queue.ToArray(); //Assert CollectionAssert.AreEquivalent(expected, result); Assert.AreEqual(expectedElement, element); Assert.AreEqual(expectedNextElement, nextElement); }