### Question:
NodeRef implements Bounded, Comparable<NodeRef> { public static String removeParent(final String parentPath, final String childPath) { checkArgument(isChild(parentPath, childPath)); List<String> parent = split(parentPath); List<String> child = split(childPath); child = child.subList(parent.size(), child.size()); String strippedChildPath = child.get(0); for (int i = 1; i < child.size(); i++) { strippedChildPath = appendChild(strippedChildPath, child.get(i)); } return strippedChildPath; } NodeRef(@NonNull Node node, String parentPath, @NonNull ObjectId metadataId); NodeRef update(final ObjectId newId, final @Nullable Envelope newBounds); static NodeRef createRoot(Node node); static NodeRef create(String parentPath, Node node); static NodeRef create(String parentPath, Node node, ObjectId metadataId); String getParentPath(); Node getNode(); String path(); String name(); @Override ObjectId getObjectId(); ObjectId getMetadataId(); ObjectId getDefaultMetadataId(); RevObject.TYPE getType(); @Override boolean equals(Object o); @Override int hashCode(); @Override int compareTo(NodeRef o); @Override String toString(); static @Nullable String parentPath(@Nullable String fullPath); static void checkValidPath(final String path); static @Nullable String nodeFromPath(@Nullable String fullPath); static boolean isDirectChild(@NonNull String parentPath, @NonNull String nodePath); static boolean isChild(@NonNull String parentPath, @NonNull String nodePath); static List<String> allPathsTo(final @NonNull String path); static List<String> split(final @NonNull String path); static String appendChild(String parentTreePath, @NonNull String childName); @Override boolean intersects(Envelope env); @Override void expand(Envelope env); static int depth(String path); static String removeParent(final String parentPath, final String childPath); @Override Optional<Envelope> bounds(); static NodeRef tree(@NonNull String treePath, @NonNull ObjectId id,
            @NonNull ObjectId metadataId); static final String ROOT; static final char PATH_SEPARATOR; }### Answer:
@Test public void testRemoveParent() { assertEquals("sub/points.1", NodeRef.removeParent("Points", "Points/sub/points.1")); assertEquals("points.1", NodeRef.removeParent("Points", "Points/points.1")); assertThrows(IllegalArgumentException.class, () -> NodeRef.removeParent("Lines", "Points/points.1")); }