### Question:
PathCopyTree implements MutableTree<E, MutableNode<E>> { public static <E> TypeKey<PathCopyTree<E>> typeKey() { return new TypeKey<PathCopyTree<E>>() {}; } PathCopyTree(); @Override PathCopyNode<E> setRoot(E root); @Override PathCopyNode<E> getRoot(); @Override boolean isEmpty(); static TypeKey<PathCopyTree<E>> typeKey();  }### Answer:
@Test public void typeKeyTest() { final TypeKey<PathCopyTree<String>> key = PathCopyTree.<String>typeKey(); assertEquals(PathCopyTree.class, key.getTreeType()); assertTrue(key.toString().contains(PathCopyTree.class.getSimpleName())); }