public void SynchronisedDoubleEndedQueueDequeuingItemBackDoesNotImpactFront() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); int originalFront = deque.PeekAtItemFromFront(); deque.DequeueItemFromBack(); int newFront = deque.PeekAtItemFromFront(); Assert.AreEqual(originalFront, newFront); }
public void SynchronisedDoubleEndedQueueSupportsEnqueueingItemToFrontOfQueue() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); deque.EnqueueItemToFront(9); int front = deque.PeekAtItemFromFront(); Assert.AreEqual(9, front); }
public void SynchronisedDoubleEndedQueueDequeuingItemFromFrontUpdatesFront() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); deque.DequeueItemFromFront(); int newFront = deque.PeekAtItemFromFront(); Assert.AreEqual(2, newFront); }
public void SynchronisedDoubleEndedQueuePeekAtItemFromFrontThrowsIfQueueIsEmpty() { var deque = new SynchronisedDeque <int>(); Assert.Throws <InvalidOperationException>(() => deque.PeekAtItemFromFront()); }