### Question:
StringUri { public static String fromElements(Object... elements) { return Arrays.stream(elements) .map(String::valueOf) .map(StringUri::trimUri) .map(StringUri::formatUri) .collect(Collectors.joining("/")); } private  StringUri(); static String fromElements(Object... elements); static String withQuery(String uri, Map<String, ?> requestParams); static String withQuery(String uri, String paramName, String paramValue); static Map<String, String> getQueryParamsFromUri(String uri); static String decode(String url); static boolean isUri(String stringToCheck); static boolean containsProtocol(String urlToCheck); static boolean containsQueryParam(String uri, String paramName); static String appendQueryParam(String uri, String paramName, String paramValue); static String removeAllQueryParams(String uri); static Optional<String> getVersion(String uri); static String copyQueryParams(String sourceUri, String targetUri);  }### Answer:
@Test void fromElements() { String uri = StringUri.fromElements("/a", "b/", "/c/"); assertThat(uri).isEqualTo("a/b/c"); uri = StringUri.fromElements("/d/", "e", "/f/", "g/"); assertThat(uri).isEqualTo("d/e/f/g"); }