public void CheckSubtreeRecursiveTest_ReturnFalse() { // Arrange var testTree = new BinaryTreeNode <int>(4) { Left = new BinaryTreeNode <int>(2) { Left = new BinaryTreeNode <int>(1) { Left = new BinaryTreeNode <int>(0) }, Right = new BinaryTreeNode <int>(3) { Left = new BinaryTreeNode <int>(3) } }, Right = new BinaryTreeNode <int>(5) { Right = new BinaryTreeNode <int>(6) } }; Console.WriteLine("Input:"); TestHelper.PrintBinaryTree(testTree); var subtree1 = new BinaryTreeNode <int>(2) { Left = new BinaryTreeNode <int>(1), Right = new BinaryTreeNode <int>(3) }; var subtree2 = new BinaryTreeNode <int>(4) { Right = new BinaryTreeNode <int>(5) { Right = new BinaryTreeNode <int>(6) } }; var subtree3 = new BinaryTreeNode <int>(4) { Left = new BinaryTreeNode <int>(2), Right = new BinaryTreeNode <int>(5) }; var subtree4 = new BinaryTreeNode <int>(4) { Left = new BinaryTreeNode <int>(2) { Left = new BinaryTreeNode <int>(1), Right = new BinaryTreeNode <int>(3) }, Right = new BinaryTreeNode <int>(5) { Right = new BinaryTreeNode <int>(6) } }; var subtree5 = new BinaryTreeNode <int>(5) { Left = new BinaryTreeNode <int>(6) }; var subtree6 = new BinaryTreeNode <int>(3) { Right = new BinaryTreeNode <int>(3) }; // Act bool result1 = Question_4_10.CheckSubtreeRecursive(testTree, subtree1); bool result2 = Question_4_10.CheckSubtreeRecursive(testTree, subtree2); bool result3 = Question_4_10.CheckSubtreeRecursive(testTree, subtree3); bool result4 = Question_4_10.CheckSubtreeRecursive(testTree, subtree4); bool result5 = Question_4_10.CheckSubtreeRecursive(testTree, subtree5); bool result6 = Question_4_10.CheckSubtreeRecursive(testTree, subtree6); // Assert Assert.IsFalse(result1, "Check 1 failed."); Assert.IsFalse(result2, "Check 2 failed."); Assert.IsFalse(result3, "Check 3 failed."); Assert.IsFalse(result4, "Check 4 failed."); Assert.IsFalse(result5, "Check 5 failed."); Assert.IsFalse(result6, "Check 6 failed."); }
private static void Validate(BinaryTreeNode <int> t1, BinaryTreeNode <int> t2, bool expected) { var result = Question_4_10.ContainsSubtree(t1, t2); Assert.AreEqual(expected, result); }