public void AddFourRemoveFourThenAddFiveRemoveFiveAddFourRemoveFourAssertCorrectBehaviour() { var queue = new Queues <int>(); for (int i = 0; i < 4; i++) { queue.Enqueue(i); } for (int i = 0; i < 4; i++) { Assert.AreEqual(i, queue.Dequeue()); } for (int i = 0; i < 5; i++) { queue.Enqueue(i); } for (int i = 0; i < 5; i++) { Assert.AreEqual(i, queue.Dequeue()); } for (int i = 0; i < 4; i++) { queue.Enqueue(i); } for (int i = 0; i < 4; i++) { Assert.AreEqual(i, queue.Dequeue()); } }
public void AddFour_RemoveTwo_AddFour_Assert_CorrectBehviour() { var queue = new Queues <int>(); for (int i = 0; i < 4; i++) { queue.Enqueue(i); } for (int k = 0; k < 2; k++) { var item = queue.Dequeue(); Assert.AreEqual(item, k); } for (int j = 5; j < 8; j++) { queue.Enqueue(j); } for (int k = 2; k < 4; k++) { var item = queue.Dequeue(); Assert.AreEqual(item, k); } }
public void AddThree_RemoveTwo_AddOne_Assert_CorrectBehviourForWrappedHead() { var queue = new Queues <int>(); for (int i = 0; i < 3; i++) { queue.Enqueue(i); } for (int k = 0; k < 2; k++) { var item = queue.Dequeue(); Assert.AreEqual(item, k); } //Add two more for (int j = 3; j < 5; j++) { queue.Enqueue(j); } for (int i = 2; i < 5; i++) { var item = queue.Dequeue(); Assert.AreEqual(item, i); } }
public void AddFiveRemoveFiveAddTenRemoveTenAddFour() { var queue = new Queues <int>(); for (int i = 0; i < 5; i++) { queue.Enqueue(i); } for (int i = 0; i < 5; i++) { Assert.AreEqual(i, queue.Dequeue()); } for (int i = 0; i < 10; i++) { queue.Enqueue(i); } for (int i = 0; i < 10; i++) { Assert.AreEqual(i, queue.Dequeue()); } for (int i = 0; i < 4; i++) { queue.Enqueue(i); } for (int i = 0; i < 4; i++) { Assert.AreEqual(i, queue.Dequeue()); } }
public void DequeueOnQueue() { Queues queue = new Queues(); Node nodeOne = new Node(1); Node nodeTwo = new Node(2); queue.Enqueue(nodeOne); queue.Enqueue(nodeTwo); Assert.True(queue.Dequeue().Value == nodeOne.Value); Assert.True(queue.Dequeue().Value == nodeTwo.Value); Assert.Throws <NullReferenceException>(() => queue.Dequeue()); }
public IEnumerable <T> GetMaxValue() // Short way = return InOrder().Max(); // reduce // return InOrder().Aggregate(max,next) => max > next ? max : next); { if (Root == null) { throw new Exception("Root is Null"); } Queues <Node> nodeQueue = new Queues <Node>(); T max = Root.Value; Node current = nodeQueue.Dequeue(); if (current.Value.CompareTo(max) > 0) { max = current.Value; } if (current.Left != null) { nodeQueue.Enqueue(current.Left); } if (current.Right != null) { nodeQueue.Enqueue(current.Right); } yield return(max); }
public IEnumerable <T> BreadthFirstSearch() { if (Root is null) { yield break; } else { //Create queue Queues <Node> breadthTraversal = new Queues <Node>(); breadthTraversal.Enqueue(Root); // check if tree is empty while (!breadthTraversal.IsEmpty()) { //dequeue root first var front = breadthTraversal.Dequeue(); yield return(front.Value); //move from left to right if (front.Left != null) { breadthTraversal.Enqueue(front.Left); } if (front.Right != null) { breadthTraversal.Enqueue(front.Right); } } } }
public void EmptyQueueAfterMultipleDequeues() { Queues <int> queue = new Queues <int>(); queue.Enqueue(10); queue.Enqueue(11); queue.Enqueue(12); queue.Dequeue(); queue.Dequeue(); queue.Dequeue(); bool expected = true; Assert.Equal(expected, queue.IsEmpty()); }
public void EmptyQueueThrowsException() { Queues <int> queue = new Queues <int>(); var dequeueResult = Assert.Throws <Exception>(() => queue.Dequeue()); var peekResult = Assert.Throws <Exception>(() => queue.Peek()); string expected = ("The queue is empty"); Assert.Equal(expected, dequeueResult.Message); Assert.Equal(expected, peekResult.Message); }
public void CanDequeueOutOfQueue() { Queues <int> queue = new Queues <int>(); queue.Enqueue(10); queue.Enqueue(11); queue.Enqueue(12); Node <int> returned = queue.Dequeue(); int expected = 10; Assert.Equal(expected, returned.Value); }
public void QueueDequeue() { { Node myNode1 = new Node(1); Node myNode2 = new Node(1); Queues Queue = new Queues(myNode1); Queue.Enqueue(myNode2); Queue.Dequeue(); Assert.Equal(myNode2, Queue.Peek()); } }
public void AddFiveElementsAssertElementsAddedInOrder() { var queue = new Queues <int>(); for (int i = 0; i < 5; i++) { queue.Enqueue(i); } for (int i = 0; i < 5; i++) { var item = queue.Dequeue(); Assert.AreEqual(i, item); } }
public void AddSixteenItems_RemoveNineItems_AssertCorrectBehaviourOfResize() { var queue = new Queues <int>(); for (int i = 0; i < 16; i++) { queue.Enqueue(i); } for (int k = 15; k > 6; k--) { var item = queue.Dequeue(); } Assert.AreEqual(7, queue.Count); }
public void DequeueOnEmptyQueue() { Queues queue = new Queues(); Assert.Throws <NullReferenceException>(() => queue.Dequeue()); }