Exemplo n.º 1
0
 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");
 }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
 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");
 }
Exemplo n.º 4
0
        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");
        }
Exemplo n.º 5
0
 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");
 }
Exemplo n.º 6
0
        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());
        }
Exemplo n.º 7
0
        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");
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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");
        }
Exemplo n.º 10
0
        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");
        }
Exemplo n.º 11
0
        /// <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);
        }