/// <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);
            }
        }
Exemple #4
0
        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);
            }
        }