### Question:
KeyMap extends HashMap<String, KeyMap<V>> { public KeyMap<V> find(final String path) { return find(new NameIterator(path)); } KeyMap(final int initialCapacity, final float loadFactor);  KeyMap(final int initialCapacity);  KeyMap(); KeyMap<V> get(final String key, int offs, int len); KeyMap<V> getAny(); KeyMap<V> getOrCreateAny(); KeyMap<V> putAny(KeyMap<V> any); KeyMap<V> putAnyIfAbsent(KeyMap<V> any); boolean hasRootValue(); V getRootValue(); V getRootValueOrDefault(final V defaultVal); V getOrComputeRootValue(final Supplier<V> supplier); @SuppressWarnings("unchecked") V removeRootValue(); V putRootValue(final V rootValue); KeyMap<V> find(final String path); KeyMap<V> find(final NameIterator ni); KeyMap<V> find(final Iterator<String> iter); KeyMap<V> find(final Iterable<String> i); KeyMap<V> findOrAdd(final String path); KeyMap<V> findOrAdd(final NameIterator ni); KeyMap<V> findOrAdd(final Iterator<String> iter); KeyMap<V> findOrAdd(final Iterable<String> i); KeyMap<V> findOrAdd(final String... keys); KeyMap<V> findOrAdd(final String[] keys, int off, int len); V findRootValue(final String path); V findRootValue(final NameIterator ni); boolean hasRootValue(final String path); boolean hasRootValue(final NameIterator ni); KeyMap<V2> map(P param, BiFunction<P, V, V2> conversion); KeyMap<V2> map(Function<V, V2> conversion); @SuppressWarnings("ResultOfMethodCallIgnored") StringBuilder toString(StringBuilder b); String toString();  }### Answer:
@Test void find() { KeyMap<String> root = new KeyMap<>(); root.findOrAdd("root").findOrAdd("foo").putRootValue("foo"); root.findOrAdd("root").findOrAdd("bar").putRootValue("bar"); assertEquals("foo", root.findRootValue("root.foo")); assertEquals("bar", root.findRootValue("root.bar")); }