### Question:
Converter implements TreeConverter<E, MutableSettableStructuredNode<E>, LinkedTree<E>> { @Override public <S extends OpenNode<E, S>> LinkedTree<E> build(Tree<E, S> sourceTree) { if (sourceTree.isEmpty()) { return new LinkedTree<>(null); } final S root = sourceTree.getRoot(); return duplicate(root.getElement(), root.childIterator(), root.getNumberOfChildren()); }  @Override LinkedTree<E> build(Tree<E, S> sourceTree); @Override Class<? extends Tree> forClass();  }### Answer:
@Test public void treeFromRootNode() { final Converter<String> converter = new Converter<>(); final LinkedTree<String> newTree = converter.build(tree); assertEquals("root", newTree.getRoot().getElement()); assertEquals("child", newTree.getRoot().getChild(0).getElement()); assertEquals(1, newTree.getRoot().getNumberOfChildren()); }
@Test public void treeFromEmptyTree() { final Converter<String> converter = new Converter<>(); final LinkedTree<String> newTree = converter.build(emptyTree); assertTrue(newTree.isEmpty()); }