示例#1
0
        public void TailTest()
        {
            const string data  = "One Two Three One Three";
            var          queue = data.Split().Aggregate(BatchedQueue <string> .Empty, BatchedQueue <string> .Snoc);
            var          tail  = BatchedQueue <string> .Tail(queue);

            Assert.AreEqual("[[Two, Three, One, Three], null]", DumpQueue(tail));
        }
示例#2
0
        public void EmptyTest()
        {
            var queue = BatchedQueue <string> .Empty;

            Assert.IsTrue(BatchedQueue <string> .IsEmpty(queue));

            queue = BatchedQueue <string> .Snoc(queue, "Item");

            Assert.IsFalse(BatchedQueue <string> .IsEmpty(queue));

            queue = BatchedQueue <string> .Tail(queue);

            Assert.IsTrue(BatchedQueue <string> .IsEmpty(queue));
        }
示例#3
0
        public void PushPopTest()
        {
            const string data  = "One Two Three One Three";
            var          queue = data.Split().Aggregate(BatchedQueue <string> .Empty, BatchedQueue <string> .Snoc);

            foreach (var expected in data.Split())
            {
                var actual = BatchedQueue <string> .Head(queue);

                Assert.AreEqual(expected, actual);
                queue = BatchedQueue <string> .Tail(queue);
            }

            Assert.IsTrue(BatchedQueue <string> .IsEmpty(queue));
        }
示例#4
0
        public void EmptyTailTest()
        {
            var queue = BatchedQueue <string> .Empty;

            AssertThrows <ArgumentNullException>(() => BatchedQueue <string> .Tail(queue));
        }