Beispiel #1
0
        public void SnocTest()
        {
            var queue = BankersDeque <string> .Empty;

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

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

            Assert.AreEqual("[1, {$Head}, 1, {$Last}]", DumpQueue(queue, true));
        }
Beispiel #2
0
        public void ConsTest()
        {
            var queue = BankersDeque <string> .Empty;

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

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

            Assert.AreEqual("[1, {$Head}, 1, {$Last}]", DumpQueue(queue, true));
        }
Beispiel #3
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 #4
0
        public void SnocLastInitTest()
        {
            const string data  = "One Two Three One Three";
            var          queue = data.Split().Aggregate(BankersDeque <string> .Empty, BankersDeque <string> .Snoc);

            var dat = data.Split().Reverse();

            foreach (var expected in dat)
            {
                var actual = BankersDeque <string> .Last(queue);

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

            Assert.IsTrue(BankersDeque <string> .IsEmpty(queue));
        }
Beispiel #5
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 #6
0
 private static string DumpQueue <T>(BankersDeque <T> .Queue queue, bool expandUnCreated)
 {
     return($"[{queue.LenF}, {{{DumpStream(queue.F, expandUnCreated)}}}, {queue.LenR}, {{{DumpStream(queue.R, expandUnCreated)}}}]");
 }
Beispiel #7
0
        public void EmptyInitTest()
        {
            var queue = BankersDeque <string> .Empty;

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