node1 = TreeNode("B")
node1.add("A")
node1.add("D")
assert node1.children[1].parent == node1
node2 = TreeNode("G")
assert node2.children == []
assert node2.parent is None
assert node1.children[0].value == "A"
node0 = TreeNode("F", node1, node2)
assert node0.value == "F"
assert node0.children == [node1, node2]
assert node0.parent is None
assert str(node0) == "F"
assert node1.siblings() == (node2,)
assert node1.parent == node0
assert node2.parent == node0
assert node2.children == []
assert isinstance(node0.for_each_breadth_first(), tuple)
assert [str(x) for x in node0.for_each_breadth_first()] == ['F', 'B', 'G', 'A', 'D']
