public void LookupNullTest() { var list = AltBinaryRandomAccessList <string> .Empty; var ex = AssertThrows <ArgumentException>(() => AltBinaryRandomAccessList <string> .Lookup(0, list)); Assert.AreEqual("must be Zero or One\r\nParameter name: ts", ex.Message); }
public void HeadTest() { const string data = "How now, brown cow?"; var list = data.Split().Aggregate(AltBinaryRandomAccessList <string> .Empty, (current, word) => AltBinaryRandomAccessList <string> .Cons(word, current)); Assert.AreEqual("cow?", AltBinaryRandomAccessList <string> .Head(list)); }
public void EmptyTailTest() { var list = AltBinaryRandomAccessList <string> .Empty; var ex = AssertThrows <ArgumentException>(() => AltBinaryRandomAccessList <string> .Tail(list)); Assert.AreEqual("must be Zero or One\r\nParameter name: dataType", ex.Message); }
public void LookupSingleTest() { var list = AltBinaryRandomAccessList <string> .Empty; list = AltBinaryRandomAccessList <string> .Cons("A", list); Assert.AreEqual("A", AltBinaryRandomAccessList <string> .Lookup(0, list)); }
public void TailTest() { const string data = "How now, brown cow?"; var list = data.Split().Aggregate(AltBinaryRandomAccessList <string> .Empty, (current, word) => AltBinaryRandomAccessList <string> .Cons(word, current)); var tail = AltBinaryRandomAccessList <string> .Tail(list); Assert.AreEqual("[One: brown, {(now,, How)}]", DumpTree(tail)); }
public void ConsEmptyTest() { var list = AltBinaryRandomAccessList <string> .Empty; list = AltBinaryRandomAccessList <string> .Cons("A", list); Assert.AreEqual("[One: A, {}]", DumpTree(list)); }
public void IsEmptyTest() { var list = AltBinaryRandomAccessList <string> .Empty; Assert.IsTrue(AltBinaryRandomAccessList <string> .IsEmpty(list)); list = AltBinaryRandomAccessList <string> .Cons("A", list); Assert.IsFalse(AltBinaryRandomAccessList <string> .IsEmpty(list)); }
public void RoseTest() { const string data = "What's in a name? That which we call a rose by any other name would smell as sweet."; var list = data.Split().Aggregate(AltBinaryRandomAccessList <string> .Empty, (current, word) => AltBinaryRandomAccessList <string> .Cons(word, current)); Assert.AreEqual("[Zero: {(sweet., as), (smell, would), (name, other), (any, by), (rose, a), (call, we), (which, That), (name?, a), (in, What's)}]", DumpTree(list)); Assert.AreEqual("sweet.", AltBinaryRandomAccessList <string> .Lookup(0, list)); Assert.AreEqual("What's", AltBinaryRandomAccessList <string> .Lookup(17, list)); }
public void Test1() { var list = AltBinaryRandomAccessList <int> .Empty; for (var i = 0; i < 11; i++) { list = AltBinaryRandomAccessList <int> .Cons(i, list); } Assert.AreEqual("[One: 10, {(9, 8), (7, 6), (5, 4), (3, 2), (1, 0)}]", DumpTree(list)); }
public void FUpdateZeroOddTest() { const string data = "How now, brown cow?"; var list = data.Split().Aggregate(AltBinaryRandomAccessList <string> .Empty, (current, word) => AltBinaryRandomAccessList <string> .Cons(word, current)); list = AltBinaryRandomAccessList <string> .Fupdate(value => value + "-" + value, 1, list); Assert.AreEqual("[Zero: {(cow?, brown-brown), (now,, How)}]", DumpTree(list)); Assert.AreEqual("brown-brown", AltBinaryRandomAccessList <string> .Lookup(1, list)); }
public void FUpdateOneTest() { const string data = "How now, cow?"; var list = data.Split().Aggregate(AltBinaryRandomAccessList <string> .Empty, (current, word) => AltBinaryRandomAccessList <string> .Cons(word, current)); list = AltBinaryRandomAccessList <string> .Fupdate(value => value + "-" + value, 1, list); Assert.AreEqual("[One: cow?, {(now,-now,, How)}]", DumpTree(list)); Assert.AreEqual("now,-now,", AltBinaryRandomAccessList <string> .Lookup(1, list)); }
public void UpdateTest() { const string data = "How now, brown cow?"; var list = data.Split().Aggregate(AltBinaryRandomAccessList <string> .Empty, (current, word) => AltBinaryRandomAccessList <string> .Cons(word, current)); list = AltBinaryRandomAccessList <string> .Update(1, "green", list); Assert.AreEqual("[Zero: {(cow?, green), (now,, How)}]", DumpTree(list)); Assert.AreEqual("green", AltBinaryRandomAccessList <string> .Lookup(1, list)); }
public void ConsOneTest() { var list = AltBinaryRandomAccessList <string> .Empty; list = AltBinaryRandomAccessList <string> .Cons("A", list); list = AltBinaryRandomAccessList <string> .Cons("B", list); Assert.AreEqual("[Zero: {(B, A)}]", DumpTree(list)); }
private static string DumpTree <T>(AltBinaryRandomAccessList <T> .DataType tree) where T : IComparable <T> { if (tree == null) { return("null"); } if (tree is AltBinaryRandomAccessList <T> .Zero zero) { return($"[Zero: {DumpList(zero.RList)}]"); } if (tree is AltBinaryRandomAccessList <T> .One one) { return($"[One: {one.Alpha}, {DumpList(one.RList)}]"); } throw new ArgumentException(); }
public void DumpEvenTree() { const string data = "a b c d"; var tree = data.Split().Aggregate(AltBinaryRandomAccessList <string> .Empty, (current, word) => AltBinaryRandomAccessList <string> .Cons(word, current)); Assert.AreEqual("[Zero: {(d, c), (b, a)}]", DumpTree(tree)); }