/// <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 node that's not in the tree /// </summary> static void TestRemoveNodeNotInTree() { 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); bool success = tree.RemoveNode(node6); Console.Write("TestRemoveNodeNotInTree: "); 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 false Actual: " + TreeString + ", " + tree.Count + " and " + success); } }
/// <summary> /// Test removing a branch node from the tree /// </summary> static void TestRemoveBranchNode() { 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(node5); Console.Write("TestRemoveBranchNode: "); string treeString = tree.ToString(); if (treeString.Equals("Root: 4 [Node Value: 4 Parent: null Children: ]") && tree.Count == 1 && success) { Console.WriteLine("Passed"); } else { Console.WriteLine("FAILED!!! Expected: " + "Root: 4 [Node Value: 4 Children: 5 ], " + "2, and true Actual: " + treeString + ", " + tree.Count + " and " + success); } }