### Question:
PathType { public abstract ParseResult parsePath(String path); 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 testParsePath() { ParseResult path = type.parsePath("foo/bar/baz/one\\two"); assertParseResult(path, null, "foo", "bar", "baz", "one", "two"); ParseResult path2 = type.parsePath("$one assertParseResult(path2, "$", "one", "two"); }