### Question:
PercentDecoder { public static String decodeUnreserved(String str) { return decode(str, CodepointMatcher.UNRESERVED); } private  PercentDecoder(); static String decodeAll(String str); static String decodeUnreserved(String str);  }### Answer:
@Test public void allAsciiUnreserved() { StringBuilder expected = new StringBuilder(); StringBuilder encoded = new StringBuilder(); for (char c = 0; c < 0x80; c++) { String percent = percentEncode(c); if (".-_~".indexOf(c) > -1 || CodepointMatcher.ALPHANUMERIC.matches(c)) { expected.append(c); } else { expected.append(percent); } encoded.append(percent); } assertEquals(expected.toString(), PercentDecoder.decodeUnreserved(encoded.toString())); }