private static void TestLinkedQueue()
        {
            ILinkedQueue<int> linkedQueue = new LinkedQueue<int>();

            // Should return true
            var isEmpty = linkedQueue.IsEmpty();

            linkedQueue.Enqueue(1);
            linkedQueue.Enqueue(2);
            linkedQueue.Enqueue(3);
            linkedQueue.Enqueue(4);
            // Should have 4 elements

            // Should remove first added element - (1) and return it
            var removedElement = linkedQueue.Dequeue();

            // Should return first element - (2)
            var firstElement = linkedQueue.Peek();

            // Should return 3
            var count = linkedQueue.Count;

            // Should return false
            isEmpty = linkedQueue.IsEmpty();
        }
        public void EnqueueAndDequeueTest_ReferenceType()
        {
            IQueue <String> queue = new LinkedQueue <String>();

            queue.Enqueue("1");
            Assert.IsFalse(queue.IsEmpty());
            Assert.AreEqual("1", queue.Peek());
            Assert.AreEqual(1, queue.Size());
            String value = queue.Dequeue();

            Assert.IsTrue(queue.IsEmpty());
            Assert.AreEqual(0, queue.Size());
            Assert.AreEqual("1", value);
        }
        public void EnqueueAndDequeueTest_ValueType()
        {
            IQueue <int> queue = new LinkedQueue <int>();

            queue.Enqueue(1);
            Assert.IsFalse(queue.IsEmpty());
            Assert.AreEqual(1, queue.Peek());
            Assert.AreEqual(1, queue.Size());
            int value = queue.Dequeue();

            Assert.IsTrue(queue.IsEmpty());
            Assert.AreEqual(0, queue.Size());
            Assert.AreEqual(1, value);
        }
Esempio n. 4
0
        // Level Order: like LILO
        public IEnumerable <BiTreeNode <T> > LevelOrder(BiTreeNode <T> root)
        {
            if (root == null)
            {
                yield break;
            }

            var queue = new LinkedQueue <BiTreeNode <T> >();

            queue.In(root);
            while (!queue.IsEmpty())
            {
                var node = queue.Out();
                yield return(node);

                if (node.LeftChild != null)
                {
                    queue.In(node.LeftChild);
                }
                if (node.RightChild != null)
                {
                    queue.In(node.RightChild);
                }
            }
        }
Esempio n. 5
0
        public void LinkedQueue_Works()
        {
            var queue = new LinkedQueue();

            Assert.True(queue.IsEmpty());

            queue.Enqueue("el1");
            queue.Enqueue("el2");
            queue.Enqueue("el3");

            Assert.Equal("el1", queue.Dequeue());
            Assert.Equal("el2", queue.Dequeue());
            Assert.Equal("el3", queue.Dequeue());

            Assert.True(queue.IsEmpty());
        }
        public void ConstructorTest()
        {
            IQueue <int> queue = new LinkedQueue <int>();

            Assert.IsTrue(queue.IsEmpty());
            Assert.AreEqual(0, queue.Size());
            Assert.IsTrue(string.IsNullOrWhiteSpace(queue.ToString()));
        }
        public void ManyEnqueueTest()
        {
            IQueue <int> queue = new LinkedQueue <int>();

            for (int i = 0; i < 10; i++)
            {
                queue.Enqueue(i);
                Assert.IsFalse(queue.IsEmpty());
                Assert.AreEqual(i + 1, queue.Size());
                Assert.AreEqual(0, queue.Peek());
            }
        }
Esempio n. 8
0
        public void ClearQueue_Queue_Should_Be_Empty()
        {
            // arrange
            var          start_node_value = 1;
            var          node             = 2;
            IQueue <int> TestQueue        = new LinkedQueue <int>(start_node_value);

            TestQueue.Enqueue(node);
            // act
            TestQueue.Clear();
            // assert
            Assert.IsTrue(TestQueue.IsEmpty());
            //Assert.AreEqual(null, TestQueue.First());
        }
Esempio n. 9
0
 public void EmptyTest()
 {
     LinkedQueue2.Empty();
     Assert.True(LinkedQueue2.IsEmpty());
 }