### Question:
Paths { public static Iterable<String> split(String path) { Iterable<String> result = StringUtil.tokenize(path, String.valueOf(DELIM)); if (path.indexOf(DELIM) == 0) { result = ContainerUtil.concat(Collections.singleton(String.valueOf(DELIM)), result); } return result; }  static String getNameOf(String path); static String getParentOf(String path); static String appended(String path, String child); static String renamed(String path, String newName); static String reparented(String path, String newParentPath); static String relativeIfUnder(String path, String root); static Iterable<String> split(String path); static boolean isParent(String parent, String path); static boolean isParentOrChild(String p1, String p2); static boolean equals(String p1, String p2); static void setCaseSensitive(boolean b); static boolean isCaseSensitive(); static void useSystemCaseSensitivity(); static final char DELIM; }### Answer:
@Test public void testSplitting() throws Exception { assertEquals(array("/", "foo", "bar"), ContainerUtil.collect(Paths.split("/foo/bar").iterator())); assertEquals(array("/", "foo", "bar"), ContainerUtil.collect(Paths.split("/foo/bar/").iterator())); assertEquals(array("foo", "bar"), ContainerUtil.collect(Paths.split("foo/bar/").iterator())); assertEquals(array("/", "foo"), ContainerUtil.collect(Paths.split("/foo").iterator())); assertEquals(array("/"), ContainerUtil.collect(Paths.split("/").iterator())); assertEquals(array("c:", "foo", "bar"), ContainerUtil.collect(Paths.split("c:/foo/bar").iterator())); }