public void CheckIfBST() { CheckIfBST chk = new CheckIfBST(); BSTNode <int> binaryTree = TestDataForBST.CreateBinaryTree(); BSTNode <int> nonBST = TestDataForBST.CreateNonBST(); Assert.IsTrue(chk.CheckBST(binaryTree)); Assert.IsTrue(chk.CheckBSTEfficiently(binaryTree)); Assert.IsTrue(chk.CheckBSTUsingInorder(binaryTree)); Assert.IsFalse(chk.CheckBST(nonBST)); Assert.IsFalse(chk.CheckBSTEfficiently(nonBST)); Assert.IsFalse(chk.CheckBSTUsingInorder(nonBST)); // 6 // / \ // 2 8 // / \ // 1 9 BSTNode <int> root = new BSTNode <int>(6); BSTNode <int> right = new BSTNode <int>(8); root.Right = right; BSTNode <int> left = new BSTNode <int>(2); BSTNode <int> leftLeft = new BSTNode <int>(1); BSTNode <int> leftRight = new BSTNode <int>(9); root.Left = left; root.Left.Left = leftLeft; root.Left.Right = leftRight; Assert.IsFalse(chk.CheckBST(root)); Assert.IsFalse(chk.CheckBSTEfficiently(root)); Assert.IsFalse(chk.CheckBSTUsingInorder(root)); }
public void DeleteNodeTest() { // 7 // / \ // 4 9 // / \ / \ // 2 5 8 10 var expectedOutput = "Error!!"; using (StringWriter sw = new StringWriter()) { Console.SetOut(sw); BSTNode <int> binaryTree = TestDataForBST.CreateBinaryTree(); DeleteANode d = new DeleteANode(); binaryTree = d.DeleteNode(binaryTree, new BSTNode <int>(12)); Assert.AreEqual <string>(expectedOutput, sw.ToString()); binaryTree = d.DeleteNode(binaryTree, new BSTNode <int>(2)); Assert.IsNull(binaryTree.Left.Left); InsertANode i = new InsertANode(); binaryTree = i.InsertANodeInBST(binaryTree, new BSTNode <int>(2)); binaryTree = i.InsertANodeInBST(binaryTree, new BSTNode <int>(1)); binaryTree = d.DeleteNode(binaryTree, new BSTNode <int>(2)); Assert.AreEqual(binaryTree.Left.Left.Data, 1); binaryTree = d.DeleteNode(binaryTree, new BSTNode <int>(9)); Assert.AreEqual(binaryTree.Right.Data, 8); Assert.AreEqual(binaryTree.Right.Right.Data, 10); } }
public void FindMaxNode() { BSTNode <int> binaryTree = TestDataForBST.CreateBinaryTree(); FindAnElementInBST findAnElementInBST = new FindAnElementInBST(); int min = findAnElementInBST.FindMaximum(binaryTree).Data; Assert.AreEqual(min, 10); Assert.AreEqual(findAnElementInBST.FindMaximumIteratively(binaryTree).Data, 10); }
public void FindNode() { BSTNode <int> binaryTree = TestDataForBST.CreateBinaryTree(); FindAnElementInBST findAnElementInBST = new FindAnElementInBST(); Assert.AreEqual(findAnElementInBST.FindANode(binaryTree, new BSTNode <int>(5)).Data, new BSTNode <int>(5).Data); Assert.AreEqual(findAnElementInBST.FindANodeIteratively(binaryTree, new BSTNode <int>(5)).Data, new BSTNode <int>(5).Data); }
public void InsertNodeTest() { var expectedOutput = "Node Inserted Successfully"; using (StringWriter sw = new StringWriter()) { Console.SetOut(sw); BSTNode <int> binaryTree = TestDataForBST.CreateBinaryTree(); InsertANode i = new InsertANode(); binaryTree = i.InsertANodeInBST(binaryTree, new BSTNode <int>(12)); Assert.AreEqual <string>(expectedOutput, sw.ToString()); FindAnElementInBST findNode = new FindAnElementInBST(); Assert.AreEqual(findNode.FindMaximum(binaryTree).Data, 12); Assert.IsNull(findNode.FindANode(binaryTree, new BSTNode <int>(12).Left)); Assert.IsNull(findNode.FindANode(binaryTree, new BSTNode <int>(12).Right)); } }