Esempio n. 1
0
 def test_errors_if_target_does_not_exist_in_large_tree(self):
     tree = Tree('parent', [
         Tree('x', [Tree('kid-0'), Tree('kid-1')]),
         Tree('sibling-0'),
         Tree('sibling-1')
     ])
     with self.assertRaisesWithMessage(ValueError):
         tree.fromPov('nonexistent')
Esempio n. 2
0
 def test_can_reroot_complex_tree_with_cousins(self):
     tree = Tree('grandparent', [
         Tree('parent', [
             Tree('x', [
                 Tree('kid-0'),
                 Tree('kid-1')
             ]),
             Tree('sibling-0'),
             Tree('sibling-1')
         ]),
         Tree('uncle', [
             Tree('cousin-0'),
             Tree('cousin-1')
         ])
     ])
     expected = Tree('x', [
         Tree('kid-0'),
         Tree('kid-1'),
         Tree('parent', [
             Tree('sibling-0'),
             Tree('sibling-1'),
             Tree('grandparent', [
                 Tree('uncle', [
                     Tree('cousin-0'),
                     Tree('cousin-1')
                 ])
             ])
         ])
     ])
     self.assertTreeEquals(tree.fromPov('x'), expected)
Esempio n. 3
0
 def test_can_reroot_a_tree_with_new_root_deeply_nested(self):
     tree = Tree('level-0', [
         Tree('level-1', [Tree('level-2', [Tree('level-3', [Tree('x')])])])
     ])
     expected = Tree('x', [
         Tree('level-3',
              [Tree('level-2', [Tree('level-1', [Tree('level-0')])])])
     ])
     self.assertTreeEquals(tree.fromPov('x'), expected)
Esempio n. 4
0
 def test_can_reroot_tree_with_parent_and_one_sibling(self):
     tree = Tree('parent', [
         Tree('x'),
         Tree('sibling')
     ])
     expected = Tree('x', [
         Tree('parent', [
             Tree('sibling')
         ])
     ])
     self.assertTreeEquals(tree.fromPov('x'), expected)
Esempio n. 5
0
 def test_moves_children_of_new_root_to_same_level_as_former_parent(self):
     tree = Tree('parent', [
         Tree('x', [
             Tree('kid-0'),
             Tree('kid-1')
         ])
     ])
     expected = Tree('x', [
         Tree('parent'),
         Tree('kid-0'),
         Tree('kid-1')
     ])
     self.assertTreeEquals(tree.fromPov('x'), expected)
Esempio n. 6
0
 def test_errors_if_target_does_not_exist_in_singleton_tree(self):
     tree = Tree('x')
     with self.assertRaisesWithMessage(ValueError):
         tree.fromPov('nonexistent')
Esempio n. 7
0
 def test_singleton_returns_same_tree(self):
     tree = Tree('x')
     self.assertTreeEquals(tree.fromPov('x'), tree)