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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
 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))
Exemplo n.º 4
0
 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")
Exemplo n.º 5
0
    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
Exemplo n.º 8
0
 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")
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
 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)
Exemplo n.º 11
0
 def test_only_two(self):
     self.root = lca.Node(1)
     self.root.right = lca.Node(2)
     self.assertEquals(lca.findLCA(1, 2), 1)
Exemplo n.º 12
0
 def node_constructor(self):
     self.root = lca.Node(1)
     self.assertEquals(self.root, 1)
Exemplo n.º 13
0
def test_add_node2():
    root = lca.Node(4)
    root.add_node(2)
    root.add_node(5)
    assert lca.findLCA(root, 2, 3) == -1
Exemplo n.º 14
0
def test_answer2():
    root = lca.Node(1)
    assert lca.findLCA(root, 1, 1) == 1