public void TestCommonAncestor()
        {
            UnbalancedBinaryTree<int> t = new UnbalancedBinaryTree<int>();
            t.Insert(4);
            t.Insert(2);
            t.Insert(3);
            t.Insert(1);
            t.Insert(6);
            t.Insert(5);
            t.Insert(7);

            Assert.AreEqual(4, t.FindCommonAncestor(t.Search(3), t.Search(5)).Item);
            Assert.AreEqual(4, t.FindCommonAncestor(t.Search(3), t.Search(6)).Item);
        }
        public void TestDeleteNodeWithNoChildren()
        {
            UnbalancedBinaryTree<int> tree = new UnbalancedBinaryTree<int>();
            tree.Insert(2);
            tree.Insert(1);
            tree.Insert(7);
            tree.Insert(4);
            tree.Insert(8);
            tree.Insert(3);
            tree.Insert(6);
            tree.Insert(5);

            tree.Delete(tree.Search(3));
            Assert.AreEqual(2, tree.Root.Item);
            Assert.AreEqual(1, tree.Root.Left.Item);
            Assert.AreEqual(7, tree.Root.Right.Item);
            Assert.AreEqual(4, tree.Root.Right.Left.Item);
            Assert.AreEqual(8, tree.Root.Right.Right.Item);
            Assert.AreEqual(6, tree.Root.Right.Left.Right.Item);
            Assert.AreEqual(5, tree.Root.Right.Left.Right.Left.Item);
        }
        public void TestSearch()
        {
            UnbalancedBinaryTree<string> tree = new UnbalancedBinaryTree<string>();
            tree.Insert("Test 3");
            tree.Insert("Test 2");
            tree.Insert("Test 1");
            tree.Insert("Test 5");
            tree.Insert("Test 4");

            Assert.AreEqual("Test 5", tree.Search("Test 5").Item);
            Assert.IsNull(tree.Search("Test 6"));
        }