public void DynamicImplementation() { // Arrange var tree = new ValueTreeNode <string>("Operating Systems"); // Act tree.Add( new ValueTreeNode <string>("Linux", new ValueTreeNode <string>("Ubuntu"), new ValueTreeNode <string>("Fedora"), new ValueTreeNode <string>("CentOS") )); tree.Add( new ValueTreeNode <string>("Windows", new ValueTreeNode <string>("Windows 7"), new ValueTreeNode <string>("Windows XP", new ValueTreeNode <string>("Home Edition"), new ValueTreeNode <string>("Professional Edition") ))); var xp = tree[1][1]; var root = xp.Parent.Parent; Tools.PrintAllNodes(tree, 0); // Assert Assert.AreEqual("Windows XP", xp.Value); Assert.AreEqual(tree, root); }