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))
Exemplo n.º 2
0
 def setUp(self):
     self.tree = Tree()
 def setUp(self):
     self.tree = Tree()
     self.lca = LCA()