@Test
public void postOrder_twoRoots() {

  Tree<String> tree1 = tree("a")
      .setLeft("b")
      .setRight(tree("c").setRight("d"));
  Tree<String> tree2 = tree("e")
      .setLeft(tree("f")
          .setLeft("g")
          .setRight("h"));
  assertThat(Tree.<String>walker().postOrderFrom(tree1, tree2).map(Tree::value))
      .containsExactly("b", "d", "c", "a", "g", "h", "f", "e")
      .inOrder();
}