Ejemplo n.º 1
0
 def test_commonAncestorIsNode(self):
     root = node.Node(1)
     root.left = node.Node(2)
     root.right = node.Node(3)
     root.left.left = node.Node(4)
     root.left.right = node.Node(5)
     root.right.left = node.Node(6)
     root.right.right = node.Node(7)
     self.assertEqual(2, node.lowestCommonAncestor(root, 2, 4))
     self.assertEqual(2, node.lowestCommonAncestor(root, 2, 2))
     self.assertEqual(2, node.lowestCommonAncestor(root, 4, 2))
Ejemplo n.º 2
0
 def test_basicTree(self):
     root = node.Node(1)
     root.left = node.Node(2)
     root.right = node.Node(3)
     root.left.left = node.Node(4)
     root.left.right = node.Node(5)
     root.right.left = node.Node(6)
     root.right.right = node.Node(7)
     self.assertEqual(1, node.lowestCommonAncestor(root, 4, 3))
     self.assertEqual(1, node.lowestCommonAncestor(root, 2, 7))
     self.assertEqual(3, node.lowestCommonAncestor(root, 6, 7))
Ejemplo n.º 3
0
 def test_extremeInputValues(self):
     root = node.Node(-9223372036854775800)
     root.left = node.Node(1.6)
     root.right = node.Node(1.7)
     root.left.left = node.Node(1.9)
     root.left.right = node.Node(300000)
     root.right.left = node.Node(400000)
     root.right.right = node.Node(9223372036854775800)
     self.assertEqual(-9223372036854775800,
                      node.lowestCommonAncestor(root, 1.6, 1.7))
     self.assertEqual(
         1.7, node.lowestCommonAncestor(root, 400000, 9223372036854775800))
Ejemplo n.º 4
0
 def test_duplicatedNodes(self):
     root = node.Node(1)
     root.left = node.Node(2)
     root.right = node.Node(3)
     root.left.left = node.Node(4)
     root.left.right = node.Node(6)
     root.right.left = node.Node(6)
     root.right.right = node.Node(7)
     self.assertEqual(1, node.lowestCommonAncestor(root, 6, 7))
Ejemplo n.º 5
0
 def test_bothNodesInvalid(self):
     root = node.Node(1)
     root.left = node.Node(2)
     root.right = node.Node(3)
     root.left.left = node.Node(4)
     root.left.right = node.Node(5)
     root.right.left = node.Node(6)
     root.right.right = node.Node(7)
     self.assertEqual(-1, node.lowestCommonAncestor(root, 8, 9))
Ejemplo n.º 6
0
 def test_charTest(self):
     root = node.Node('a')
     root.left = node.Node('b')
     root.right = node.Node('c')
     root.left.left = node.Node('d')
     root.left.right = node.Node('e')
     root.right.left = node.Node('f')
     root.right.right = node.Node('g')
     self.assertEqual('a', node.lowestCommonAncestor(root, 'e', 'g'))
Ejemplo n.º 7
0
 def test_InvalidNode(self):
     root = node.Node(1)
     root.left = node.Node(2)
     root.right = node.Node(3)
     root.left.left = node.Node(4)
     root.left.right = node.Node(5)
     root.right.left = node.Node(6)
     root.right.right = node.Node(7)
     self.assertEqual(-1, node.lowestCommonAncestor(root, 4, 9),
                      "Unfound node returns -1")
Ejemplo n.º 8
0
 def test_rootIsNodeOnly(self):
     root = node.Node(1)
     self.assertEqual(1, node.lowestCommonAncestor(root, 1, 1))
Ejemplo n.º 9
0
 def test_nullTree(self):
     root = None
     self.assertEqual(-1, node.lowestCommonAncestor(root, 4, 5),
                      'Empty tree returns -1')