public static VisitableList <Concat <Visitor <T>, TList, SingleItem <Visitor <T>, Item <T> > >, Visitor <T> > Add <TList, T> ( this VisitableList <TList, Visitor <T> > list, T item ) where TList : struct, IVisitableList <Visitor <T> > => list.Add(new Item <T>(item));
public void TestCompareTo() { VisitableList <int>[] lists = new VisitableList <int> [3]; for (int i = 0; i < 3; i++) { lists[i] = new VisitableList <int>(); for (int j = 0; j < i; j++) { lists[i].Add(j * 4); } } Assert.AreEqual(lists[0].CompareTo(lists[1]), -1); Assert.AreEqual(lists[2].CompareTo(lists[1]), 1); VisitableList <int> sameList = lists[1]; Assert.AreEqual(lists[1].CompareTo(sameList), 0); object obj = new object(); Assert.AreEqual(lists[0].CompareTo(obj), -1); VisitableHashtable <int, int> h = new VisitableHashtable <int, int>(); Assert.AreEqual(lists[0].CompareTo(h), 1); }
public static T[] ToArray <TList, T>(this VisitableList <TList, Visitor <T> > list) where TList : struct, IVisitableList <Visitor <T> > { T[] array = new T[list.List.Count]; Visitor <T> visitor = new Visitor <T>(array, 0); return(list.List.Accept(visitor).Array); }
public void TestIsFull() { VisitableList <int> l = GetTestList(); Assert.AreEqual(l.IsFull, false); l = new VisitableList <int>(); Assert.AreEqual(l.IsFull, false); }
public void TestVisitor() { VisitableList <int> l = GetTestList(); SumVisitor visitor = new SumVisitor(); l.Accept(visitor); Assert.AreEqual(visitor.Sum, 0 + 3 + 6 + 9 + 12); }
public void TestFixedSize() { VisitableList <int> l = new VisitableList <int>(); Assert.AreEqual(l.IsFixedSize, false); l = GetTestList(); Assert.AreEqual(l.IsFixedSize, false); }
private VisitableList <int> GetTestList() { VisitableList <int> l = new VisitableList <int>(5); for (int i = 0; i < 5; i++) { l.Add(i * 3); } return(l); }
public void TestIsEmpty() { VisitableList <int> l = GetTestList(); Assert.AreEqual(l.IsEmpty, false); l.Clear(); Assert.AreEqual(l.IsEmpty, true); l = new VisitableList <int>(); Assert.AreEqual(l.IsEmpty, true); }
public void TestStoppingVisitor() { VisitableList <int> l = GetTestList(); ComparableFindingVisitor <int> visitor = new ComparableFindingVisitor <int>(6); l.Accept(visitor); Assert.AreEqual(visitor.Found, true); visitor = new ComparableFindingVisitor <int>(99); l.Accept(visitor); Assert.AreEqual(visitor.Found, false); }
public void TestBreadthFirstVisit() { BinaryTree <int> t = GetTestTree(); TrackingVisitor <int> trackingVisitor = new TrackingVisitor <int>(); t.BreadthFirstTraversal(trackingVisitor); VisitableList <int> tracks = trackingVisitor.TrackingList; Assert.AreEqual(tracks[0], 5); Assert.AreEqual(tracks[1], 2); Assert.AreEqual(tracks[2], 3); Assert.AreEqual(tracks[3], 9); Assert.AreEqual(tracks[4], 12); Assert.AreEqual(tracks[5], 13); }
public void TestDepthFirstVisitPre() { BinaryTree <int> t = GetTestTree(); TrackingVisitor <int> trackingVisitor = new TrackingVisitor <int>(); PreOrderVisitor <int> preVisitor = new PreOrderVisitor <int>(trackingVisitor); t.DepthFirstTraversal(preVisitor); VisitableList <int> tracks = trackingVisitor.TrackingList; Assert.AreEqual(tracks[0], 5); Assert.AreEqual(tracks[1], 2); Assert.AreEqual(tracks[2], 9); Assert.AreEqual(tracks[3], 12); Assert.AreEqual(tracks[4], 3); Assert.AreEqual(tracks[5], 13); }
public void TestDepthFirstVisitPost() { GeneralTree <int> t = GetTestTree(); TrackingVisitor <int> trackingVisitor = new TrackingVisitor <int>(); PostOrderVisitor <int> postVisitor = new PostOrderVisitor <int>(trackingVisitor); t.DepthFirstTraversal(postVisitor); VisitableList <int> tracks = trackingVisitor.TrackingList; Assert.AreEqual(tracks[0], 9); Assert.AreEqual(tracks[1], 12); Assert.AreEqual(tracks[2], 2); Assert.AreEqual(tracks[3], 13); Assert.AreEqual(tracks[4], 3); Assert.AreEqual(tracks[5], 1); Assert.AreEqual(tracks[6], 5); }
public void TestSuccesfulInit() { VisitableList <int> l = new VisitableList <int>(); l = new VisitableList <int>(5); VisitableQueue <int> q = new VisitableQueue <int>(); for (int i = 0; i < 3; i++) { q.Enqueue(i * 2); } l = new VisitableList <int>(q); for (int i = 0; i < 3; i++) { Assert.AreEqual(l[i], i * 2); } }
/// <summary> /// Initializes a new instance of the <see cref="TrackingVisitor<T>"/> class. /// </summary> public ValueTrackingVisitor() { tracks = new VisitableList <TValue>(); }
/// <summary> /// Initializes a new instance of the <see cref="TrackingVisitor<T>"/> class. /// </summary> public KeyTrackingVisitor() { tracks = new VisitableList <TKey>(); }
/// <summary> /// Initializes a new instance of the <see cref="TrackingVisitor<T>"/> class. /// </summary> public TrackingVisitor() { tracks = new VisitableList <T>(); }
public static VisitableList <Empty <Visitor <T> >, Visitor <T> > Create <T>() => VisitableList.Empty <Visitor <T> >();
public void TestNullVisitor() { VisitableList <int> l = new VisitableList <int>();; l.Accept(null); }
public void TestInvalidCompareTo() { VisitableList <int> l = new VisitableList <int>(); l.CompareTo(null); }