### Question:
TreeBuilderFactoryImpl implements TreeBuilderFactory { @SuppressWarnings("unchecked") @Override public <E, N extends OpenNode<E, N>> BottomUpTreeBuilder<E, N> bottomUpBuilder() { return bottomUpTreeBuilder; } TreeBuilderFactoryImpl(KeyMappingProvider keyMappingProvider, TreeConstructorProvider treeConstructorProvider, EmptyTreeConstructorProvider emptyTreeConstructorProvider, TreeConverterProvider treeConverterProvider, EmptySortedTreeConstructorProviderImpl emptySortedTreeConstructorProvider); @SuppressWarnings("unchecked") @Override TopDownTreeRootBuilder<E, N> topDownBuilder(); @SuppressWarnings("unchecked") @Override BottomUpTreeBuilder<E, N> bottomUpBuilder(); @Override SortingTreeBuilder<E, N> sortingTreeBuilder(Comparator<E> comparator); @Override SortingTreeBuilder<E, N> sortingTreeBuilder(); @Override SortedTreeBuilder<E, N> sortedTreeBuilder(Comparator<E> comparator, SortingAlgorithm algorithm); @Override SortedTreeBuilder<E, N> sortedTreeBuilder(SortingAlgorithm algorithm); @SuppressWarnings("unchecked") @Override T copy(T tree); @Override T2 copy(Tree<E, N> tree, Class<T2> klass);  }### Answer:
@Test public void testBottomUpBuilder() { final TopDownTreeRootBuilder<String, MutableSettableStructuredNode<String>> builder = trees.treeBuilders().topDownBuilder(); final LinkedTree<String> tree = builder.build(LinkedTree.<String>typeKey()); assertTrue(tree.isEmpty()); }