### Question:
DefaultFolderTree extends
                               BasicFolderTree <KEYTYPE, DATATYPE, COLLTYPE, DefaultFolderTreeItem <KEYTYPE, DATATYPE, COLLTYPE>> { @Nonnull public static <KEYTYPE, DATATYPE> DefaultFolderTree <KEYTYPE, DATATYPE, ICommonsSet <DATATYPE>> createForSet (@Nonnull final IAggregator <KEYTYPE, KEYTYPE> aKeyCombinator) { return new DefaultFolderTree <> (aKeyCombinator); } DefaultFolderTree(@Nullable final IAggregator <KEYTYPE, KEYTYPE> aKeyCombinator);  DefaultFolderTree(@Nonnull final IFolderTreeItemFactory <KEYTYPE, DATATYPE, COLLTYPE, DefaultFolderTreeItem <KEYTYPE, DATATYPE, COLLTYPE>> aFactory); @Nonnull static DefaultFolderTree <KEYTYPE, DATATYPE, ICommonsSet <DATATYPE>> createForSet(@Nonnull final IAggregator <KEYTYPE, KEYTYPE> aKeyCombinator);  }### Answer:
@Test public void testBasic () { final IAggregator <String, String> aCombinator = x -> StringHelper.getImploded ('/', x); final DefaultFolderTree <String, Integer, ICommonsSet <Integer>> ft = DefaultFolderTree.createForSet (aCombinator); assertNotNull (ft.getRootItem ()); final DefaultFolderTreeItem <String, Integer, ICommonsSet <Integer>> i1 = ft.getRootItem () .createChildItem ("id1", PrimitiveCollectionHelper.newPrimitiveSet (1, 2, 3)); assertNotNull (i1); final DefaultFolderTreeItem <String, Integer, ICommonsSet <Integer>> i2 = ft.getRootItem () .createChildItem ("id1", PrimitiveCollectionHelper.newPrimitiveSet (1, 2, 3)); assertNotNull (i2); assertSame (i1, i2); final DefaultFolderTreeItem <String, Integer, ICommonsSet <Integer>> i3 = ft.getRootItem () .createChildItem ("id3", PrimitiveCollectionHelper.newPrimitiveSet (1, 3)); assertNotNull (i3); assertNotSame (i1, i3); CommonsTestHelper.testDefaultImplementationWithDifferentContentObject (i1, i3); }