//--------------------------------------------------------------------
 private void _AssertCountingVisitor(DataStructures.GenericNode <string> Node, DataStructures.VisitationType VisitType, int ExpectedCount)
 {
     //Console.WriteLine( "Testing VisitNodes( " + VisitType.ToString() + " )." );
     DataStructures.StringNode.CountingVisitor visitor = new DataStructures.StringNode.CountingVisitor();
     Node.VisitNodes(visitor, VisitType);
     Assert.AreEqual(ExpectedCount, visitor.Count, "Visitor count mismatch after VisitNodes( " + VisitType.ToString() + " ).");
 }
 public void Test_20_Clone()
 {
     DataStructures.GenericNode <string> root = new DataStructures.GenericNode <string>();
     GenericNodeTestData.AddTestChildren(root);
     DataStructures.GenericCloningVisitor <string> visitor = new DataStructures.GenericCloningVisitor <string>(root, new DataStructures.GenericNodeCloner <string>());
     root.VisitNodes(visitor, DataStructures.VisitationType.DecendentsDepthFirst);
     GenericNodeTestData.AssertTestChildren(visitor.TargetRoot);
     return;
 }