def testEmpty(self): root = lca.Node(1) assert (lca.findLCA(root, 6, 7)) == -1, "Should be -1" assert (lca.findLCA(root, 3, 2)) == -1, "Should be -1" assert (lca.findLCA(root, 4, 5)) == -1, "Should be -1" return
def test_add_node3(): root = lca.Node(4) #4 root.add_node(2) #2 5 root.add_node(5) #1 3 8 7 root.add_node(1) # 10 root.add_node(3) root.add_node(8) root.add_node(7) root.add_node(10) assert lca.findLCA(root, 8, 10) == 5
def test_basicTree(self): root = lca.Node(1) root.left = lca.Node(2) root.right = lca.Node(3) root.left.left = lca.Node(4) root.left.right = lca.Node(5) root.right.left = lca.Node(6) root.right.right = lca.Node(7) self.assertEqual(2, lca.lowestCommonAncestor(root, 4, 5))
def test_InvalidNode(self): root = lca.Node(1) root.left = lca.Node(2) root.right = lca.Node(3) root.left.left = lca.Node(4) root.left.right = lca.Node(5) root.right.left = lca.Node(6) root.right.right = lca.Node(7) self.assertEqual(-1, lca.lowestCommonAncestor(root, 4, 8), "Unfound node returns -1")
def test_non_existent(self): self.root = lca.Node(1) self.root.left = lca.Node(2) self.root.right = lca.Node(3) self.root.left.left = lca.Node(4) self.root.left.right = lca.Node(5) self.root.right.left = lca.Node(6) self.root.right.right = lca.Node(7) self.assertEquals(lca.findLCA(8, 9), -1);#-1 = FALSE self.assertEquals(lca.findLCA(33, 132), -1)
def testNormal(self): root = lca.Node(1) root.left = lca.Node(2) root.right = lca.Node(3) root.left.left = lca.Node(4) root.left.right = lca.Node(5) root.right.left = lca.Node(6) root.right.right = lca.Node(7) assert (lca.findLCA(root, 6, 7)) == 3, "Should be 3" assert (lca.findLCA(root, 3, 2)) == 1, "Should be 1" assert (lca.findLCA(root, 4, 5)) == 2, "Should be 2" return
def testOneMissing(self): root = lca.Node(1) root.left = lca.Node(2) root.right = lca.Node(3) root.left.left = lca.Node(4) root.left.right = lca.Node(5) root.right.left = lca.Node(6) assert (lca.findLCA(root, 6, 7)) == -1, "Should be -1" return
def test_commonAncestorIsNode(self): root = lca.Node(1) root.left = lca.Node(2) root.right = lca.Node(3) root.left.left = lca.Node(4) root.left.right = lca.Node(5) root.right.left = lca.Node(6) root.right.right = lca.Node(7) self.assertEqual(2, lca.lowestCommonAncestor(root, 2, 4), "Common Ancestor of 2 & 4 is 2 itself") self.assertEqual(2, lca.lowestCommonAncestor(root, 2, 2), "Common Ancestor of 2 & 2 is 2 itself") self.assertEqual(2, lca.lowestCommonAncestor(root, 4, 2), "Common Ancestor of 4 & 2 is 2 itself")
import unittest import lca root = lca.Node(1) root.left = lca.Node(2) root.right = lca.Node(3) root.left.left = lca.Node(4) root.left.right = lca.Node(5) root.right.left = lca.Node(6) root.right.right = lca.Node(7) path = [] class TestLca(unittest.TestCase): def test_find_path(self): #Testing to see if there's a path to a node that is actually in the tree self.assertEqual(lca.find_path(root, path, 1), True) self.assertEqual(lca.find_path(root, path, 2), True) self.assertEqual(lca.find_path(root, path, 3), True) self.assertEqual(lca.find_path(root, path, 4), True) self.assertEqual(lca.find_path(root, path, 5), True) self.assertEqual(lca.find_path(root, path, 6), True) self.assertEqual(lca.find_path(root, path, 7), True) #Testing to see if there's a path to a node that is not in the tree self.assertEqual(lca.find_path(root, path, 8), False) self.assertEqual(lca.find_path(root, path, 50), False) self.assertEqual(lca.find_path(root, path, -3), False) self.assertEqual(lca.find_path(root, path, 500), False)
def test_non_positive(self): self.root = lca.Node(-1) self.root.left = lca.Node(-2) self.root.right = lca.Node(-3) self.assertEquals(lca.findLCA(-2,-3), -1)
def test_only_two(self): self.root = lca.Node(1) self.root.right = lca.Node(2) self.assertEquals(lca.findLCA(1, 2), 1)
def node_constructor(self): self.root = lca.Node(1) self.assertEquals(self.root, 1)
def test_add_node2(): root = lca.Node(4) root.add_node(2) root.add_node(5) assert lca.findLCA(root, 2, 3) == -1
def test_answer2(): root = lca.Node(1) assert lca.findLCA(root, 1, 1) == 1