public void QueuedItemsShouldBeReturned() { var queue = new YQueue<string>(100); queue.Push("One"); queue.Push("Two"); queue.Push("Three"); Assert.AreEqual("One", queue.Pop(), "First element pushed should be the first popped"); Assert.AreEqual("Two", queue.Pop(), "Second element pushed should be the second popped"); Assert.AreEqual("Three", queue.Pop(), "Third element pushed should be the third popped"); }
public void QueuedItemsShouldBeReturned() { var queue = new YQueue <string>(100); queue.Push("One"); queue.Push("Two"); queue.Push("Three"); Assert.AreEqual("One", queue.Pop(), "First element pushed should be the first popped"); Assert.AreEqual("Two", queue.Pop(), "Second element pushed should be the second popped"); Assert.AreEqual("Three", queue.Pop(), "Third element pushed should be the third popped"); }
public void PoppingFromQueueShouldIncreaseFrontPosition() { var queue = new YQueue<string>(100); queue.Push("One"); queue.Push("Two"); queue.Push("Three"); Assert.AreEqual(0, queue.FrontPos, "Initial front position should be 0"); queue.Pop(); Assert.AreEqual(1, queue.FrontPos, "Front position should be incremented after pop"); queue.Pop(); Assert.AreEqual(2, queue.FrontPos, "Front position should be incremented after pop"); queue.Pop(); Assert.AreEqual(3, queue.FrontPos, "Front position should be incremented after pop"); }
public void PoppingFromQueueShouldIncreaseFrontPosition() { var queue = new YQueue <string>(100); queue.Push("One"); queue.Push("Two"); queue.Push("Three"); Assert.AreEqual(0, queue.FrontPos, "Initial front position should be 0"); queue.Pop(); Assert.AreEqual(1, queue.FrontPos, "Front position should be incremented after pop"); queue.Pop(); Assert.AreEqual(2, queue.FrontPos, "Front position should be incremented after pop"); queue.Pop(); Assert.AreEqual(3, queue.FrontPos, "Front position should be incremented after pop"); }
public void SmallChunkSizeShouldNotAffectBehavior() { var queue = new YQueue<string>(2); queue.Push("One"); queue.Push("Two"); queue.Push("Three"); queue.Push("Four"); queue.Push("Five"); Assert.AreEqual("One", queue.Pop()); Assert.AreEqual("Two", queue.Pop()); Assert.AreEqual("Three", queue.Pop()); Assert.AreEqual("Four", queue.Pop()); Assert.AreEqual("Five", queue.Pop()); Assert.AreEqual(queue.FrontPos, queue.BackPos, "On empty queue the front position should be equal to back position"); }
public void QueuedItemsShouldBeReturned() { string one = "One"; string two = "Two"; string three = "Three"; var queue = new YQueue <string>(100); queue.Push(ref one); queue.Push(ref two); queue.Push(ref three); Assert.Equal("One", queue.Pop()); Assert.Equal("Two", queue.Pop()); Assert.Equal("Three", queue.Pop()); }
public void SmallChunkSizeShouldNotAffectBehavior() { var queue = new YQueue <string>(2); queue.Push("One"); queue.Push("Two"); queue.Push("Three"); queue.Push("Four"); queue.Push("Five"); Assert.AreEqual("One", queue.Pop()); Assert.AreEqual("Two", queue.Pop()); Assert.AreEqual("Three", queue.Pop()); Assert.AreEqual("Four", queue.Pop()); Assert.AreEqual("Five", queue.Pop()); Assert.AreEqual(queue.FrontPos, queue.BackPos, "On empty queue the front position should be equal to back position"); }
public void PoppingFromQueueShouldIncreaseFrontPosition() { var queue = new YQueue <string>(100); string one = "One"; string two = "Two"; string three = "Three"; queue.Push(ref one); queue.Push(ref two); queue.Push(ref three); Assert.Equal(0, queue.FrontPos); queue.Pop(); Assert.Equal(1, queue.FrontPos); queue.Pop(); Assert.Equal(2, queue.FrontPos); queue.Pop(); Assert.Equal(3, queue.FrontPos); }
public void SmallChunkSizeShouldNotAffectBehavior() { string one = "One"; string two = "Two"; string three = "Three"; string four = "Four"; string five = "Five"; var queue = new YQueue<string>(2); queue.Push(ref one); queue.Push(ref two); queue.Push(ref three); queue.Push(ref four); queue.Push(ref five); Assert.AreEqual("One", queue.Pop()); Assert.AreEqual("Two", queue.Pop()); Assert.AreEqual("Three", queue.Pop()); Assert.AreEqual("Four", queue.Pop()); Assert.AreEqual("Five", queue.Pop()); Assert.AreEqual(queue.FrontPos, queue.BackPos, "On empty queue the front position should be equal to back position"); }
public void SmallChunkSizeShouldNotAffectBehavior() { string one = "One"; string two = "Two"; string three = "Three"; string four = "Four"; string five = "Five"; var queue = new YQueue <string>(2); queue.Push(ref one); queue.Push(ref two); queue.Push(ref three); queue.Push(ref four); queue.Push(ref five); Assert.AreEqual("One", queue.Pop()); Assert.AreEqual("Two", queue.Pop()); Assert.AreEqual("Three", queue.Pop()); Assert.AreEqual("Four", queue.Pop()); Assert.AreEqual("Five", queue.Pop()); Assert.AreEqual(queue.FrontPos, queue.BackPos, "On empty queue the front position should be equal to back position"); }
/// <summary> /// Attempts to read an item from the pipe. /// </summary> /// <returns><c>true</c> if the read succeeded, otherwise <c>false</c>.</returns> public bool TryRead(out T value) { // Try to prefetch a value. if (!CheckRead()) { value = default(T); return(false); } // There was at least one value prefetched. // Return it to the caller. value = m_queue.Pop(); return(true); }