public void TreeTraversal_IteratorAccessor_BuiltProperly() { var treeIter = TreeTraversal <TestTreePart> .CreateIterator(root); while (treeIter != TreeIter <TestTreePart> .End) { if (treeIter.Node == a_b_c) { break; } ++treeIter; } Assert.AreSame(a_b_c, treeIter.Node); CollectionAssert.AreEqual(treeIter.NodePath, new[] { 0, 1, 2 }); treeIter = TreeTraversal <TestTreePart> .CreateIterator(root); while (treeIter != TreeIter <TestTreePart> .End) { if (treeIter.Node == c_a_a) { break; } ++treeIter; } Assert.AreSame(c_a_a, treeIter.Node); CollectionAssert.AreEqual(treeIter.NodePath, new[] { 2, 0, 0 }); }