public void SynchronisedDoubleEndedQueueDequeuingItemBackUpdatesCount() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); deque.DequeueItemFromBack(); Assert.AreEqual(7, deque.Count); }
public void SynchronisedDoubleEndedQueueSupportsDequeuingItemFromBackOfQueue() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); int back = deque.DequeueItemFromBack(); Assert.AreEqual(8, back); }
public void SynchronisedDoubleEndedQueueDequeuingItemFromBackUpdatesBack() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); deque.DequeueItemFromBack(); int newBack = deque.PeekAtItemFromBack(); Assert.AreEqual(7, newBack); }
public void SynchronisedDoubleEndedQueueSupportDequeueingFromBackUntilQueueIsEmptySingleThreaded() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(); deque.EnqueueRangeToBack(items); while (!deque.IsEmpty) { deque.DequeueItemFromBack(); } Assert.AreEqual(0, deque.Count); }
public void SynchronisedDoubleEndedQueueEnumerationThrowsIfCollectionIsModified() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); Assert.Throws <InvalidOperationException>(() => { foreach (int i in deque) { deque.DequeueItemFromBack(); } }); }
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 SynchronisedDoubleEndedQueueDequeueItemFromBackThrowsIfQueueIsEmpty() { var deque = new SynchronisedDeque <int>(); Assert.Throws <InvalidOperationException>(() => deque.DequeueItemFromBack()); }