Beispiel #1
0
        public void ConsHeadTailTest()
        {
            const string data  = "One Two Three One Three";
            var          queue = data.Split().Aggregate(BankersDeque <string> .Empty, (queue1, s) => BankersDeque <string> .Cons(s, queue1));

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

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

            Assert.IsTrue(BankersDeque <string> .IsEmpty(queue));
        }
Beispiel #2
0
        public void EmptyTest()
        {
            var queue = BankersDeque <string> .Empty;

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

            queue = BankersDeque <string> .Cons("Head", queue);

            Assert.IsFalse(BankersDeque <string> .IsEmpty(queue));
            queue = BankersDeque <string> .Tail(queue);

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

            queue = BankersDeque <string> .Snoc(queue, "Tail");

            Assert.IsFalse(BankersDeque <string> .IsEmpty(queue));
            queue = BankersDeque <string> .Init(queue);

            Assert.IsTrue(BankersDeque <string> .IsEmpty(queue));
        }
Beispiel #3
0
        public void EmptyTailTest()
        {
            var queue = BankersDeque <string> .Empty;

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