public void SynchronisedDoubleEndedQueueDequeuingItemFrontUpdatesCount() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); deque.DequeueItemFromFront(); Assert.AreEqual(7, deque.Count); }
public void SynchronisedDoubleEndedQueueSupportsDequeuingItemFromFrontOfQueue() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); int front = deque.DequeueItemFromFront(); Assert.AreEqual(1, front); }
public void SynchronisedDoubleEndedQueueSupportsDequeueingFromFrontUntilQueueIsEmptySingleThreaded() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(); deque.EnqueueRangeToFront(items); while (!deque.IsEmpty) { deque.DequeueItemFromFront(); } Assert.AreEqual(0, deque.Count); }
public void SynchronisedDoubleEndedQueueDequeuingItemFrontDoesNotImpactBack() { var items = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; var deque = new SynchronisedDeque <int>(items); int originalBack = deque.PeekAtItemFromBack(); deque.DequeueItemFromFront(); int newBack = deque.PeekAtItemFromBack(); Assert.AreEqual(newBack, originalBack); }
public void SynchronisedDoubleEndedQueueDequeueItemFromFrontThrowsIfQueueIsEmpty() { var deque = new SynchronisedDeque <int>(); Assert.Throws <InvalidOperationException>(() => deque.DequeueItemFromFront()); }