Ejemplo n.º 1
0
    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
Ejemplo n.º 2
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)
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    def test_root_node(
            self):  # Test case where root is a node of interest for lca
        root = Node(2)
        root.left = Node(1)

        lca1 = lca.findLCA(root, 1, 2)
        assert lca1.value is 2, "test_root_node failed"
Ejemplo n.º 5
0
def test_findLCANonBinaryTree():
    node = Node(0)
    node1 = Node(1)
    node2 = Node(2)
    node3 = Node(3)
    node4 = Node(4)
    node5 = Node(5)
    node6 = Node(6)
    addChild(node, node1)
    addChild(node, node2)
    addChild(node2, node3)
    addChild(node2, node4)
    addChild(node2, node5)
    addChild(node4, node6)

    assert findLCA(node, node1, node6) == 0
    assert findLCA(node, node3, node6) == 2
    assert findLCA(node, node, node6) == 0
Ejemplo n.º 6
0
def test_findLCANonBinaryTree():
    node = Node(0)
    node1 = Node(1)
    node2 = Node(2)
    node3 = Node(3)
    node4 = Node(4)
    node5 = Node(5)
    node6 = Node(6)
    addChild(node,node1)
    addChild(node,node2)
    addChild(node2,node3)
    addChild(node2,node4)
    addChild(node2,node5)
    addChild(node4,node6)

    assert findLCA(node,node1,node6) == 0
    assert findLCA(node,node3,node6) == 2
    assert findLCA(node,node,node6) == 0
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
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
Ejemplo n.º 9
0
def test_findLCALoop():
    node = Node(0)
    node1 = Node(1)
    node2 = Node(2)
    node3 = Node(3)
    node4 = Node(4)
    node5 = Node(5)
    node6 = Node(6)
    addChild(node, node1)
    addChild(node1, node5)
    addChild(node1, node2)
    addChild(node2, node3)
    addChild(node3, node4)
    addChild(node5, node6)
    addChild(node6, node4)

    assert findLCA(node, node1, node5) == 1
    assert findLCA(node, node3, node6) == 1
    assert findLCA(node, node4, node6) == 6
Ejemplo n.º 10
0
def test_findLCALoop():
    node = Node(0)
    node1 = Node(1)
    node2 = Node(2)
    node3 = Node(3)
    node4 = Node(4)
    node5 = Node(5)
    node6 = Node(6)
    addChild(node,node1)
    addChild(node1,node5)
    addChild(node1,node2)
    addChild(node2,node3)
    addChild(node3,node4)
    addChild(node5,node6)
    addChild(node6,node4)

    assert findLCA(node,node1,node5) == 1
    assert findLCA(node,node3,node6) == 1
    assert findLCA(node,node4,node6) == 6
Ejemplo n.º 11
0
    def test_basic(self):  #Test for basic case, nodes present in tree
        root = Node(1)
        root.left = Node(2)
        root.right = Node(3)
        root.left.left = Node(4)
        root.left.right = Node(5)
        root.right.left = Node(6)
        root.right.right = Node(7)

        lca1 = lca.findLCA(root, 4, 5)
        assert lca1.value is 2, "test_basic failed"
Ejemplo n.º 12
0
def test_findLCA():
    node = Node(1)
    node1 = Node(2)
    node2 = Node(3)
    node3 = Node(4)
    node4 = Node(5)
    addChild(node, node1)
    addChild(node, node2)
    addChild(node2, node3)
    addChild(node2, node4)

    assert findLCA(node, node4, node3) == 3
Ejemplo n.º 13
0
    def test_two_nodes_with_equal_keys(
            self):  # Test case with two nodes of equal keys
        root = Node(1)
        root.left = Node(2)
        root.right = Node(3)
        root.left.left = Node(4)
        root.left.right = Node(5)
        root.right.left = Node(3)
        root.right.right = Node(7)

        lca1 = lca.findLCA(root, 3, 3)
        assert lca1.value is 3, "test_two_nodes_with_equal_keys failed"
Ejemplo n.º 14
0
def test_findLCA():
    node = Node(1)
    node1 = Node(2)
    node2 = Node(3)
    node3 = Node(4)
    node4 = Node(5)
    addChild(node,node1)
    addChild(node,node2)
    addChild(node2,node3)
    addChild(node2,node4)

    assert findLCA(node,node4,node3) == 3
Ejemplo n.º 15
0
    def test_three_nodes_with_equal_keys(
        self
    ):  # Test case with three nodes of equal keys, returns lca of the two nodes with correct key that it finds first
        root = Node(1)
        root.left = Node(3)
        root.right = Node(2)
        root.left.left = Node(4)
        root.left.right = Node(5)
        root.right.left = Node(3)
        root.right.right = Node(3)

        lca1 = lca.findLCA(root, 3, 3)
        assert lca1.value is 1, "test_three_nodes_with_equal_keys failed"
Ejemplo n.º 16
0
    def test_lowest_node(
            self):  # Test case with one of the lowest nodes in tree
        root = Node(5)
        root.left = Node(2)
        root.right = Node(9)
        root.left.left = Node(6)
        root.left.right = Node(4)
        root.left.right.right = Node(10)
        root.left.right.right.right = Node(100)
        root.right.left = Node(1)
        root.right.right = Node(0)

        lca1 = lca.findLCA(root, 0, 100)
        assert lca1.value is 5, "test_lowest_node failed"
Ejemplo n.º 17
0
    def test_nonpresent_node(self):  # Test case for a node not present in tree
        root = Node(1)
        root.left = Node(2)
        root.right = Node(3)
        root.left.left = Node(4)
        root.left.right = Node(5)
        root.right.left = Node(6)
        root.right.right = Node(7)

        lca1 = lca.findLCA(root, 4, 8)
        assert lca1 is None, "test_nonpresent_node failed"

        node1 = lca.find(root, 4)  #Test each node indivdually
        assert node1 is True, "test_nonpresent_node node1 failed"
        node2 = lca.find(root, 8)
        assert node2 is False, "test_nonpresent_node node2 failed"
Ejemplo n.º 18
0
    def test_left_right_node(
        self
    ):  # Test case with one node in the furthest left tree and the other in the furthest right tree
        root = Node(5)
        root.left = Node(2)
        root.right = Node(9)
        root.left.left = Node(6)
        root.left.right = Node(4)
        root.left.left.left = Node(10)
        root.left.left.left.left = Node(101)
        root.right.right = Node(7)
        root.right.left = Node(3)
        root.right.right.right = Node(11)
        root.right.right.right.right = Node(102)

        lca1 = lca.findLCA(root, 102, 101)
        assert lca1.value is 5, "test_left_right_node failed"
Ejemplo n.º 19
0
def test_answer2():
    root = lca.Node(1)
    assert lca.findLCA(root, 1, 1) == 1
Ejemplo n.º 20
0
def test_create_tree():
    root = lca.create_tree(13, 2, 25)
    assert lca.findLCA(root, 4, 18) == 13
    assert lca.findLCA(root, 10, 12) == 9
    assert lca.findLCA(root, 1, 12) == -1
Ejemplo n.º 21
0
def test_answer1():
    assert lca.findLCA(None, None, None) == -1
Ejemplo n.º 22
0
    def test_null(self):  # Test case with empty tree
        root = None

        lca1 = lca.findLCA(root, 4, 5)
        assert lca1 is None, "test_null failed"
Ejemplo n.º 23
0
def test_add_node2():
    root = lca.Node(4)
    root.add_node(2)
    root.add_node(5)
    assert lca.findLCA(root, 2, 3) == -1
Ejemplo n.º 24
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)
Ejemplo n.º 25
0
 def test_only_two(self):
     self.root = lca.Node(1)
     self.root.right = lca.Node(2)
     self.assertEquals(lca.findLCA(1, 2), 1)