/// <summary> /// Test removing the root of the tree /// </summary> static void TestRemoveRoot() { Tree <int> tree = new Tree <int>(4); TreeNode <int> node5 = new TreeNode <int>(5, tree.Root); tree.AddNode(node5); TreeNode <int> node6 = new TreeNode <int>(6, node5); tree.AddNode(node6); TreeNode <int> node7 = new TreeNode <int>(7, node5); tree.AddNode(node7); TreeNode <int> node8 = new TreeNode <int>(8, node6); tree.AddNode(node8); bool success = tree.RemoveNode(tree.Root); Console.Write("TestRemoveRoot: "); string treeString = tree.ToString(); if (treeString.Equals("Root: null") && tree.Count == 0 && success) { Console.WriteLine("Passed"); } else { Console.WriteLine("FAILED!!! Expected: Root: null, 2," + " and true Actual: " + treeString + " and " + tree.Count + " and " + success); } }
/// <summary> /// Test removing a leaf node from the tree /// </summary> static void TestRemoveLeafNode() { Tree <int> tree = new Tree <int>(4); TreeNode <int> node5 = new TreeNode <int>(5, tree.Root); tree.AddNode(node5); TreeNode <int> node6 = new TreeNode <int>(6, node5); tree.AddNode(node6); bool success = tree.RemoveNode(node6); Console.Write("TestRemoveLeafNode: "); string treeString = tree.ToString(); if (treeString.Equals("Root: 4 [Node Value: 4 Parent: null Children: 5 ]," + "[Node Value: 5 Parent: 4 Children: ]") && tree.Count == 2 && success) { Console.WriteLine("Passed"); } else { Console.WriteLine("FAILED!!! Expected: " + "Root: 4 [Node Value: 4 Parent: null Children: 5 ], " + "[Node Value: 5 Parent: 4 Children: ], 2, and true Actual: " + treeString + ", " + tree.Count + " and " + success); } }
/// <summary> /// Test adding a duplicate child between two nodes /// </summary> static void TestAddNodeDuplicateChild() { Tree <int> tree = new Tree <int>(4); TreeNode <int> node5 = new TreeNode <int>(5, tree.Root); tree.AddNode(node5); bool success = tree.AddNode(node5); Console.Write("TestAddNodeDuplicateChild: "); string treeString = tree.ToString(); if (treeString.Equals("Root: 4 [Node Value: 4 Parent: null Children: 5 ]," + "[Node Value: 5 Parent: 4 Children: ]") && !success) { Console.WriteLine("Passed"); } else { Console.WriteLine("FAILED!!! Expected: " + "Root: 4 [Node Value: 4 Parent: null Children: 5 ]," + "[Node Value: 5 Parent: 4 Children: ] and false Actual: " + treeString + " and " + success); } }
static void Main(string[] args) { // Create a tree Tree tree = new Tree(); for (int i = 2; i <= 11; i++) { tree.AddNode(i); } }
/// <summary> /// Test finding a node that's not in the tree /// </summary> static void TestFindNodeNotInTree() { Tree <int> tree = new Tree <int>(4); tree.AddNode(new TreeNode <int>(5, tree.Root)); TreeNode <int> node = tree.Find(6); Console.Write("TestFindNodeInTree: "); if (node == null) { Console.WriteLine("Passed"); } else { Console.WriteLine("FAILED!!! Didn't expect to find node 6"); } }
/// <summary> /// Test finding a node that's in the tree /// </summary> static void TestFindNodeInTree() { Tree <int> tree = new Tree <int>(5); tree.AddNode(new TreeNode <int>(5, tree.Root)); TreeNode <int> node = tree.Find(5); Console.Write("TestFindNodeInTree: "); if (node != null && node.Value == 5) { Console.WriteLine("Passed"); } else { Console.WriteLine("FAILED!!! Expected to find node 5"); } }
/// <summary> /// Test adding a null node to the tree /// </summary> static void TestAddNodeNullNode() { Tree <int> tree = new Tree <int>(4); bool success = tree.AddNode(null); Console.Write("TestAddNodeNullNode: "); string treeString = tree.ToString(); if (treeString.Equals("Root: 4 [Node Value: 4 Parent: null Children: ]") && !success) { Console.WriteLine("Passed"); } else { Console.WriteLine("FAILED!!! Expected: " + "Root: 4 [Node Value: 4 Parent: null Children: ] and false Actual: " + treeString + " and " + success); } }