def test_node_add_then_get_children(self): n = Node() left = Node() right = Node() n.add_child(left) n.add_child(right) self.assertEqual(set(n.children.values()), set([left, right]))
def test_node_add_multiple_children_then_delete_one(self): n = Node() left = Node("left") right = Node("right") n.add_child(left) n.add_child(right) n.remove_child("left") self.assertEqual(n.children, dict(right=right))
def test_tree_print_with_several_children(self): root = Node(name="first_level") t = Tree(root=root, name="root") left = Node(name="second_level_one") right = Node(name="second_level_two") t.root.add_child(left) t.root.add_child(right) left.add_child(Node("third_level_one")) left.add_child(Node("third_level_two")) left.add_child(Node("third_level_three")) expected = "<Tree 'root'>\n<Node first_level>\n\t<Node second_level_one>\n\t\t" expected += "<Node third_level_one>\n\t\t<Node third_level_two>\n\t\t<Node third_level_three>" # ... expected += "\n\t<Node second_level_two>" # ... self.assertEqual(str(t), expected)
def test_node_add_then_delete_one_child(self): n = Node() left = Node("left") n.add_child(left) n.remove_child("left") self.assertEqual(n.children, dict())
def test_node_add_child_sets_child_parent(self): n = Node(data=1) left = Node(name="left", data=2) n.add_child(left) self.assertIsNotNone(n.children["left"].parent) self.assertEqual(n.children["left"].parent.data, 1)
def test_node_add_then_get_one_child(self): n = Node() left = Node("left") n.add_child(left) self.assertEqual(n.children["left"], left)