def test_random_tree(self): import random for test in xrange(50): self.tree = Tree() n = random.randint(2, 50) root = random.randint(1, 10000) saw = [root] saw_set = set(saw) for i in xrange(n - 1): u = saw[random.randint(0, len(saw) - 1)] while True: v = random.randint(1, 10000) if v not in saw_set: saw_set.add(v) saw += [v] self.tree.add_edge(u, v) break self.assertEqual(self.tree.size(), n) self.tree.set_root(root) self.assertTrue(self.lca.preprocess(self.tree)) for i in xrange(len(saw)): for j in xrange(i, len(saw)): u, v = saw[i], saw[j] self.assertEqual(self.brute_lca(u, v), self.lca.query(u, v))
def setUp(self): self.tree = Tree()
def setUp(self): self.tree = Tree() self.lca = LCA()