Exemplo n.º 1
0
        public void CreateValueNextTest()
        {
            NestedListNode <int> node1 = ChurchNestedList <int> .Create(1)(ChurchNestedList <int> .Null);

            NestedListNode <int> node2 = ChurchNestedList <int> .Create(2)(node1);

            NestedListNode <int> node3 = ChurchNestedList <int> .Create(3)(node2);

            Assert.AreEqual(1, node1.Value());
            Assert.AreEqual(ChurchNestedList <int> .Null, node1.Next());
            Assert.AreEqual(2, node2.Value());
            Assert.AreEqual(node1, node2.Next());
            Assert.AreEqual(3, node3.Value());
            Assert.AreEqual(node2, node3.Next());
            Assert.AreEqual(node2.Value(), node3.Next().Value());
            Assert.AreEqual(node1.Value(), node3.Next().Next().Value());
            Assert.AreEqual(ChurchNestedList <int> .Null, node3.Next().Next().Next());
            try
            {
                ChurchNestedList <int> .Null.Next();

                Assert.Fail();
            }
            catch (InvalidCastException exception)
            {
                Trace.WriteLine(exception);
            }
        }
Exemplo n.º 2
0
        public void IsNullTest()
        {
            NestedListNode <int> node1 = ChurchNestedList <int> .Create(1)(ChurchNestedList <int> .Null);

            NestedListNode <int> node2 = ChurchNestedList <int> .Create(2)(node1);

            NestedListNode <int> node3 = ChurchNestedList <int> .Create(3)(node2);

            Assert.IsTrue(ChurchNestedList <object> .Null.IsNull().Unchurch());
            Assert.IsFalse(node1.IsNull().Unchurch());
            Assert.IsFalse(node2.IsNull().Unchurch());
            Assert.IsFalse(node3.IsNull().Unchurch());
            Assert.IsTrue(node1.Next().IsNull().Unchurch());
            Assert.IsFalse(node2.Next().IsNull().Unchurch());
            Assert.IsFalse(node3.Next().IsNull().Unchurch());
        }
Exemplo n.º 3
0
        public void IndexTest()
        {
            NestedListNode <int> node1 = ChurchNestedList <int> .Create(1)(ChurchNestedList <int> .Null);

            NestedListNode <int> node2 = ChurchNestedList <int> .Create(2)(node1);

            NestedListNode <int> node3 = ChurchNestedList <int> .Create(3)(node2);

            Assert.AreEqual(node3, node3.NodeAt(0U.Church()));
            Assert.AreEqual(node2, node3.NodeAt(1U.Church()));
            Assert.AreEqual(node1, node3.NodeAt(2U.Church()));
            Assert.IsTrue(node3.NodeAt(3U.Church()).IsNull().Unchurch());
            try
            {
                node3.NodeAt(4U.Church());
                Assert.Fail();
            }
            catch (InvalidCastException exception)
            {
                Trace.WriteLine(exception);
            }
        }
Exemplo n.º 4
0
 public static NestedListNode <T> NodeAt <T>(this NestedListNode <T> start, Numeral index) =>
 ChurchNestedList <T> .NodeAt(start)(index);
Exemplo n.º 5
0
 public static NestedListNode <T> Next <T>(this NestedListNode <T> node) => ChurchNestedList <T> .Next(node);
Exemplo n.º 6
0
 public static T Value <T>(this NestedListNode <T> node) => ChurchNestedList <T> .Value(node);
Exemplo n.º 7
0
 public static Boolean IsNull <T>(this NestedListNode <T> node) => ChurchNestedList <T> .IsNull(node);