public YPipe(int qsize, string name) { #if DEBUG m_name = name; #endif m_queue = new YQueue <T>(qsize); m_lastAllowedToReadIndex = m_flushFromIndex = m_readToIndex = m_flushToIndex = m_queue.BackPos; }
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 PushingToQueueShouldIncreaseBackPosition() { var queue = new YQueue<string>(100); Assert.AreEqual(0, queue.BackPos, "Initial back position should be 0"); queue.Push("One"); Assert.AreEqual(1, queue.BackPos, "Back position should be incremented after push"); queue.Push("Two"); Assert.AreEqual(2, queue.BackPos, "Back position should be incremented after push"); queue.Push("Three"); Assert.AreEqual(3, queue.BackPos, "Back position should be incremented after push"); }
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 PushingToQueueShouldIncreaseBackPosition() { var queue = new YQueue <string>(100); Assert.AreEqual(0, queue.BackPos, "Initial back position should be 0"); queue.Push("One"); Assert.AreEqual(1, queue.BackPos, "Back position should be incremented after push"); queue.Push("Two"); Assert.AreEqual(2, queue.BackPos, "Back position should be incremented after push"); queue.Push("Three"); Assert.AreEqual(3, queue.BackPos, "Back position should be incremented after push"); }
public void UnpushShouldRemoveLastPushedItem() { var queue = new YQueue<string>(2); queue.Push("One"); queue.Push("Two"); queue.Push("Three"); Assert.AreEqual(3, queue.BackPos, "Ensuring that Back position is 3"); Assert.AreEqual("Three", queue.Unpush(), "Unpush should return the last item in a queue"); Assert.AreEqual(2, queue.BackPos, "Back position should be decremented after unpush"); Assert.AreEqual("Two", queue.Unpush(), "Unpush should return the last item in a queue"); Assert.AreEqual(1, queue.BackPos, "Back position should be decremented after unpush"); Assert.AreEqual("One", queue.Unpush(), "Unpush should return the last item in a queue"); Assert.AreEqual(0, queue.BackPos, "Back position should be decremented after unpush"); }
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 UnpushShouldRemoveLastPushedItem() { var queue = new YQueue <string>(2); queue.Push("One"); queue.Push("Two"); queue.Push("Three"); Assert.AreEqual(3, queue.BackPos, "Ensuring that Back position is 3"); Assert.AreEqual("Three", queue.Unpush(), "Unpush should return the last item in a queue"); Assert.AreEqual(2, queue.BackPos, "Back position should be decremented after unpush"); Assert.AreEqual("Two", queue.Unpush(), "Unpush should return the last item in a queue"); Assert.AreEqual(1, queue.BackPos, "Back position should be decremented after unpush"); Assert.AreEqual("One", queue.Unpush(), "Unpush should return the last item in a queue"); Assert.AreEqual(0, queue.BackPos, "Back position should be decremented after unpush"); }
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 PushingToQueueShouldIncreaseBackPosition() { string one = "One"; string two = "Two"; string three = "Three"; var queue = new YQueue<string>(100); Assert.AreEqual(0, queue.BackPos, "Initial back position should be 0"); queue.Push(ref one); Assert.AreEqual(1, queue.BackPos, "Back position should be incremented after push"); queue.Push(ref two); Assert.AreEqual(2, queue.BackPos, "Back position should be incremented after push"); queue.Push(ref three); Assert.AreEqual(3, queue.BackPos, "Back position should be incremented after push"); }
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 PushingToQueueShouldIncreaseBackPosition() { string one = "One"; string two = "Two"; string three = "Three"; var queue = new YQueue <string>(100); Assert.Equal(0, queue.BackPos); queue.Push(ref one); Assert.Equal(1, queue.BackPos); queue.Push(ref two); Assert.Equal(2, queue.BackPos); queue.Push(ref three); Assert.Equal(3, queue.BackPos); }
public void PushingToQueueShouldIncreaseBackPosition() { string one = "One"; string two = "Two"; string three = "Three"; var queue = new YQueue <string>(100); Assert.AreEqual(0, queue.BackPos, "Initial back position should be 0"); queue.Push(ref one); Assert.AreEqual(1, queue.BackPos, "Back position should be incremented after push"); queue.Push(ref two); Assert.AreEqual(2, queue.BackPos, "Back position should be incremented after push"); queue.Push(ref three); Assert.AreEqual(3, queue.BackPos, "Back position should be incremented after push"); }
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 UnpushShouldRemoveLastPushedItem() { string one = "One"; string two = "Two"; string three = "Three"; var queue = new YQueue <string>(2); queue.Push(ref one); queue.Push(ref two); queue.Push(ref three); // Back position should be decremented after unpush Assert.Equal(3, queue.BackPos); // Unpush should return the last item in a queue Assert.Equal("Three", queue.Unpush()); Assert.Equal(2, queue.BackPos); Assert.Equal("Two", queue.Unpush()); Assert.Equal(1, queue.BackPos); Assert.Equal("One", queue.Unpush()); Assert.Equal(0, queue.BackPos); }
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"); }