コード例 #1
0
        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;
        }
コード例 #2
0
ファイル: YQueueTests.cs プロジェクト: EugenDueck/netmq
 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");
 }
コード例 #3
0
ファイル: YQueueTests.cs プロジェクト: EugenDueck/netmq
 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");
 }
コード例 #4
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");
        }
コード例 #5
0
        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");
        }
コード例 #6
0
ファイル: YQueueTests.cs プロジェクト: EugenDueck/netmq
 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");
 }
コード例 #7
0
ファイル: YQueueTests.cs プロジェクト: EugenDueck/netmq
 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");
 }
コード例 #8
0
        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");
        }
コード例 #9
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");
        }
コード例 #10
0
ファイル: YQueueTests.cs プロジェクト: EugenDueck/netmq
 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");
 }
コード例 #11
0
ファイル: YQueueTests.cs プロジェクト: cjkao/netmq
        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");
        }
コード例 #12
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());
        }
コード例 #13
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");
        }
コード例 #14
0
        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);
        }
コード例 #15
0
ファイル: YQueueTests.cs プロジェクト: liu7788414/netmq
        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");
        }
コード例 #16
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);
        }
コード例 #17
0
ファイル: YQueueTests.cs プロジェクト: bbqchickenrobot/netmq
        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");
        }
コード例 #18
0
        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);
        }
コード例 #19
0
ファイル: YQueueTests.cs プロジェクト: liu7788414/netmq
        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");
        }