### Question:
PathType { @Override public String toString() { return getClass().getSimpleName(); } protected  PathType(boolean allowsMultipleRoots, char separator, char... otherSeparators); static PathType unix(); static PathType windows(); final boolean allowsMultipleRoots(); final String getSeparator(); final String getOtherSeparators(); final Joiner joiner(); final Splitter splitter(); abstract ParseResult parsePath(String path); @Override String toString(); abstract String toString(@NullableDecl String root, Iterable<String> names); final URI toUri(
      URI fileSystemUri, String root, Iterable<String> names, boolean directory); final ParseResult fromUri(URI uri);  }### Answer:
@Test public void testToString() { ParseResult path = type.parsePath("foo/bar\\baz"); assertThat(type.toString(path.root(), path.names())).isEqualTo("foo/bar/baz"); ParseResult path2 = type.parsePath("$/foo/bar"); assertThat(type.toString(path2.root(), path2.names())).isEqualTo("$foo/bar"); }