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 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"); }
/// <summary> /// Pop an incomplete item from the pipe. /// </summary> /// <returns>the element revoked if such item exists, <c>null</c> otherwise.</returns> public bool Unwrite(ref T value) { if (m_flushToIndex == m_queue.BackPos) { return(false); } value = m_queue.Unpush(); return(true); }
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); }