test_class.declarator: ONE_BYTE = "$"
test_class.modifier: public static final
test_class.original_string: public static final String ONE_BYTE = "$";
test_class.type: String
test_class.var_name: ONE_BYTE
test_class.declarator: ONE_BYTE_MIN = String.valueOf(toChars(0x0000))
test_class.modifier: public static final
test_class.original_string: public static final String ONE_BYTE_MIN = String.valueOf(toChars(0x0000));
test_class.type: String
test_class.var_name: ONE_BYTE_MIN
test_class.declarator: ONE_BYTE_MAX = String.valueOf(toChars(0x007F))
test_class.modifier: public static final
test_class.original_string: public static final String ONE_BYTE_MAX = String.valueOf(toChars(0x007F));
test_class.type: String
test_class.var_name: ONE_BYTE_MAX
test_class.declarator: ONE_BYTE_ENCODED = "%24"
test_class.modifier: public static final
test_class.original_string: public static final String ONE_BYTE_ENCODED = "%24";
test_class.type: String
test_class.var_name: ONE_BYTE_ENCODED
test_class.declarator: ONE_BYTE_MIN_ENCODED = "%00"
test_class.modifier: public static final
test_class.original_string: public static final String ONE_BYTE_MIN_ENCODED = "%00";
test_class.type: String
test_class.var_name: ONE_BYTE_MIN_ENCODED
test_class.declarator: ONE_BYTE_MAX_ENCODED = "%7F"
test_class.modifier: public static final
test_class.original_string: public static final String ONE_BYTE_MAX_ENCODED = "%7F";
test_class.type: String
test_class.var_name: ONE_BYTE_MAX_ENCODED
test_class.declarator: ONE_BYTE_ENCODED_OVERLONG2 = "%C0%A4"
test_class.modifier: public static final
test_class.original_string: public static final String ONE_BYTE_ENCODED_OVERLONG2 = "%C0%A4";
test_class.type: String
test_class.var_name: ONE_BYTE_ENCODED_OVERLONG2
test_class.declarator: TWO_BYTES = "¢";
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES = "¢";
test_class.type: String
test_class.var_name: TWO_BYTES
test_class.declarator: TWO_BYTES_MIN = String.valueOf(toChars(0x0080))
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_MIN = String.valueOf(toChars(0x0080));
test_class.type: String
test_class.var_name: TWO_BYTES_MIN
test_class.declarator: TWO_BYTES_MAX = String.valueOf(toChars(0x07FF))
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_MAX = String.valueOf(toChars(0x07FF));
test_class.type: String
test_class.var_name: TWO_BYTES_MAX
test_class.declarator: TWO_BYTES_ENCODED = "%C2%A2"
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_ENCODED = "%C2%A2";
test_class.type: String
test_class.var_name: TWO_BYTES_ENCODED
test_class.declarator: TWO_BYTES_ENCODED_PERCENT_INVALID = "%C2%AG"
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_ENCODED_PERCENT_INVALID = "%C2%AG";
test_class.type: String
test_class.var_name: TWO_BYTES_ENCODED_PERCENT_INVALID
test_class.declarator: TWO_BYTES_MIN_ENCODED = "%C2%80"
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_MIN_ENCODED = "%C2%80";
test_class.type: String
test_class.var_name: TWO_BYTES_MIN_ENCODED
test_class.declarator: TWO_BYTES_MAX_ENCODED = "%DF%BF"
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_MAX_ENCODED = "%DF%BF";
test_class.type: String
test_class.var_name: TWO_BYTES_MAX_ENCODED
test_class.declarator: TWO_BYTES_ENCODED_INVALID = "%C2%E2"
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_ENCODED_INVALID = "%C2%E2";
test_class.type: String
test_class.var_name: TWO_BYTES_ENCODED_INVALID
test_class.declarator: TWO_BYTES_ENCODED_OVERLONG3A = "%E0%9F%80"
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_ENCODED_OVERLONG3A = "%E0%9F%80";
test_class.type: String
test_class.var_name: TWO_BYTES_ENCODED_OVERLONG3A
test_class.declarator: TWO_BYTES_ENCODED_OVERLONG3B = "%E0%82%A2"
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_ENCODED_OVERLONG3B = "%E0%82%A2";
test_class.type: String
test_class.var_name: TWO_BYTES_ENCODED_OVERLONG3B
test_class.declarator: TWO_BYTES_ENCODED_OVERLONG4 = "%F0%80%82%A2"
test_class.modifier: public static final
test_class.original_string: public static final String TWO_BYTES_ENCODED_OVERLONG4 = "%F0%80%82%A2";
test_class.type: String
test_class.var_name: TWO_BYTES_ENCODED_OVERLONG4
test_class.declarator: THREE_BYTES_A = "€";
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_A = "€";
test_class.type: String
test_class.var_name: THREE_BYTES_A
test_class.declarator: THREE_BYTES_B = String.valueOf(toChars(0x82C))
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_B = String.valueOf(toChars(0x82C));
test_class.type: String
test_class.var_name: THREE_BYTES_B
test_class.declarator: THREE_BYTES_MIN = String.valueOf(toChars(0x0800))
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_MIN = String.valueOf(toChars(0x0800));
test_class.type: String
test_class.var_name: THREE_BYTES_MIN
test_class.declarator: THREE_BYTES_MAX = String.valueOf(toChars(0xFFFF))
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_MAX = String.valueOf(toChars(0xFFFF));
test_class.type: String
test_class.var_name: THREE_BYTES_MAX
test_class.declarator: THREE_BYTES_ENCODED_A = "%E2%82%AC"
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_ENCODED_A = "%E2%82%AC";
test_class.type: String
test_class.var_name: THREE_BYTES_ENCODED_A
test_class.declarator: THREE_BYTES_ENCODED_A_PERCENT_INVALID = "%E2%82%AG"
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_ENCODED_A_PERCENT_INVALID = "%E2%82%AG";
test_class.type: String
test_class.var_name: THREE_BYTES_ENCODED_A_PERCENT_INVALID
test_class.declarator: THREE_BYTES_ENCODED_B = "%E0%A0%AC"
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_ENCODED_B = "%E0%A0%AC";
test_class.type: String
test_class.var_name: THREE_BYTES_ENCODED_B
test_class.declarator: THREE_BYTES_MIN_ENCODED = "%E0%A0%80"
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_MIN_ENCODED = "%E0%A0%80";
test_class.type: String
test_class.var_name: THREE_BYTES_MIN_ENCODED
test_class.declarator: THREE_BYTES_MAX_ENCODED = "%EF%BF%BF"
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_MAX_ENCODED = "%EF%BF%BF";
test_class.type: String
test_class.var_name: THREE_BYTES_MAX_ENCODED
test_class.declarator: THREE_BYTES_ENCODED_INVALID1 = "%E2%C2%AC"
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_ENCODED_INVALID1 = "%E2%C2%AC";
test_class.type: String
test_class.var_name: THREE_BYTES_ENCODED_INVALID1
test_class.declarator: THREE_BYTES_ENCODED_INVALID2 = "%E2%82%EC"
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_ENCODED_INVALID2 = "%E2%82%EC";
test_class.type: String
test_class.var_name: THREE_BYTES_ENCODED_INVALID2
test_class.declarator: THREE_BYTES_ENCODED_OVERLONG4 = "%F0%82%82%AC"
test_class.modifier: public static final
test_class.original_string: public static final String THREE_BYTES_ENCODED_OVERLONG4 = "%F0%82%82%AC";
test_class.type: String
test_class.var_name: THREE_BYTES_ENCODED_OVERLONG4
test_class.declarator: FOUR_BYTES = String.valueOf(toChars(0x10348))
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES = String.valueOf(toChars(0x10348));
test_class.type: String
test_class.var_name: FOUR_BYTES
test_class.declarator: FOUR_BYTES_MIN = String.valueOf(toChars(0x100000))
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_MIN = String.valueOf(toChars(0x100000));
test_class.type: String
test_class.var_name: FOUR_BYTES_MIN
test_class.declarator: FOUR_BYTES_MAX = String.valueOf(toChars(0x10FFFF))
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_MAX = String.valueOf(toChars(0x10FFFF));
test_class.type: String
test_class.var_name: FOUR_BYTES_MAX
test_class.declarator: FOUR_BYTES_ENCODED = "%F0%90%8D%88"
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_ENCODED = "%F0%90%8D%88";
test_class.type: String
test_class.var_name: FOUR_BYTES_ENCODED
test_class.declarator: FOUR_BYTES_ENCODED_PERCENT_INVALID = "%F0%90%8D%8G"
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_ENCODED_PERCENT_INVALID = "%F0%90%8D%8G";
test_class.type: String
test_class.var_name: FOUR_BYTES_ENCODED_PERCENT_INVALID
test_class.declarator: FOUR_BYTES_MAX_ENCODED = "%F4%8F%BF%BF"
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_MAX_ENCODED = "%F4%8F%BF%BF";
test_class.type: String
test_class.var_name: FOUR_BYTES_MAX_ENCODED
test_class.declarator: FOUR_BYTES_ENCODED_INVALID1 = "%F0%D0%8D%88"
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_ENCODED_INVALID1 = "%F0%D0%8D%88";
test_class.type: String
test_class.var_name: FOUR_BYTES_ENCODED_INVALID1
test_class.declarator: FOUR_BYTES_ENCODED_INVALID2 = "%F0%90%CD%88"
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_ENCODED_INVALID2 = "%F0%90%CD%88";
test_class.type: String
test_class.var_name: FOUR_BYTES_ENCODED_INVALID2
test_class.declarator: FOUR_BYTES_ENCODED_INVALID3 = "%F0%90%8D%C8"
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_ENCODED_INVALID3 = "%F0%90%8D%C8";
test_class.type: String
test_class.var_name: FOUR_BYTES_ENCODED_INVALID3
test_class.declarator: FOUR_BYTES_ENCODED_TOO_GREAT_F4 = "%F4%90%80%80"
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_ENCODED_TOO_GREAT_F4 = "%F4%90%80%80";
test_class.type: String
test_class.var_name: FOUR_BYTES_ENCODED_TOO_GREAT_F4
test_class.declarator: FOUR_BYTES_ENCODED_TOO_GREAT_F5 = "%F5%80%80%80"
test_class.modifier: public static final
test_class.original_string: public static final String FOUR_BYTES_ENCODED_TOO_GREAT_F5 = "%F5%80%80%80";
test_class.type: String
test_class.var_name: FOUR_BYTES_ENCODED_TOO_GREAT_F5
test_class.file: rut/src/test/java/io/norberg/rut/EncodingTest.java
test_class.identifier: EncodingTest
test_case.body: @Test
    public void verifyDecode3InvalidFails() throws Exception {
      assertThat(decode(THREE_BYTES_ENCODED_INVALID1), is(nullValue()));
      assertThat(decode(THREE_BYTES_ENCODED_INVALID2), is(nullValue()));
      assertThat(decode(THREE_BYTES_ENCODED_A_PERCENT_INVALID), is(nullValue()));
    }
test_case.class_method_signature: EncodingTest.verifyDecode3InvalidFails()
test_case.full_signature: @Test public void verifyDecode3InvalidFails()
test_case.identifier: verifyDecode3InvalidFails
test_case.invocations: assertThat decode is nullValue assertThat decode is nullValue assertThat decode is nullValue
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void verifyDecode3InvalidFails()
focal_class.declarator: INVALID = Integer.MIN_VALUE
focal_class.modifier: private static final
focal_class.original_string: private static final int INVALID = Integer.MIN_VALUE;
focal_class.type: int
focal_class.var_name: INVALID
focal_class.file: rut/src/main/java/io/norberg/rut/Encoding.java
focal_class.identifier: Encoding
focal_class.class_method_signature: Encoding.Encoding()
focal_class.full_signature: private  Encoding()
focal_class.identifier: Encoding
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  Encoding()
focal_class.class_method_signature: Encoding.decode(final CharSequence s)
focal_class.full_signature: static CharSequence decode(final CharSequence s)
focal_class.identifier: decode
focal_class.modifiers: static
focal_class.parameters: (final CharSequence s)
focal_class.return: CharSequence
focal_class.signature: CharSequence decode(final CharSequence s)
focal_class.class_method_signature: Encoding.decode0(final CharSequence s)
focal_class.full_signature: private static CharSequence decode0(final CharSequence s)
focal_class.identifier: decode0
focal_class.modifiers: private static
focal_class.parameters: (final CharSequence s)
focal_class.return: CharSequence
focal_class.signature: CharSequence decode0(final CharSequence s)
focal_class.class_method_signature: Encoding.decodePercent(final CharSequence s, final int length, final int i)
focal_class.full_signature: private static int decodePercent(final CharSequence s, final int length, final int i)
focal_class.identifier: decodePercent
focal_class.modifiers: private static
focal_class.parameters: (final CharSequence s, final int length, final int i)
focal_class.return: int
focal_class.signature: int decodePercent(final CharSequence s, final int length, final int i)
focal_class.class_method_signature: Encoding.decodeNibbles(final char c1, final char c2)
focal_class.full_signature: private static int decodeNibbles(final char c1, final char c2)
focal_class.identifier: decodeNibbles
focal_class.modifiers: private static
focal_class.parameters: (final char c1, final char c2)
focal_class.return: int
focal_class.signature: int decodeNibbles(final char c1, final char c2)
focal_class.class_method_signature: Encoding.decodeHex(final char c)
focal_class.full_signature: private static int decodeHex(final char c)
focal_class.identifier: decodeHex
focal_class.modifiers: private static
focal_class.parameters: (final char c)
focal_class.return: int
focal_class.signature: int decodeHex(final char c)
focal_class.class_method_signature: Encoding.contains(final CharSequence s, final char c)
focal_class.full_signature: private static boolean contains(final CharSequence s, final char c)
focal_class.identifier: contains
focal_class.modifiers: private static
focal_class.parameters: (final CharSequence s, final char c)
focal_class.return: boolean
focal_class.signature: boolean contains(final CharSequence s, final char c)
focal_class.class_method_signature: Encoding.utf8Length(int c)
focal_class.full_signature: private static int utf8Length(int c)
focal_class.identifier: utf8Length
focal_class.modifiers: private static
focal_class.parameters: (int c)
focal_class.return: int
focal_class.signature: int utf8Length(int c)
focal_class.class_method_signature: Encoding.utf8Read2(int cu1, int cu2)
focal_class.full_signature: private static int utf8Read2(int cu1, int cu2)
focal_class.identifier: utf8Read2
focal_class.modifiers: private static
focal_class.parameters: (int cu1, int cu2)
focal_class.return: int
focal_class.signature: int utf8Read2(int cu1, int cu2)
focal_class.class_method_signature: Encoding.utf8Read3(int cu1, int cu2, int cu3)
focal_class.full_signature: private static int utf8Read3(int cu1, int cu2, int cu3)
focal_class.identifier: utf8Read3
focal_class.modifiers: private static
focal_class.parameters: (int cu1, int cu2, int cu3)
focal_class.return: int
focal_class.signature: int utf8Read3(int cu1, int cu2, int cu3)
focal_class.class_method_signature: Encoding.utf8Read4(int cu1, int cu2, int cu3, int cu4)
focal_class.full_signature: private static int utf8Read4(int cu1, int cu2, int cu3, int cu4)
focal_class.identifier: utf8Read4
focal_class.modifiers: private static
focal_class.parameters: (int cu1, int cu2, int cu3, int cu4)
focal_class.return: int
focal_class.signature: int utf8Read4(int cu1, int cu2, int cu3, int cu4)
focal_method.body: static CharSequence decode(final CharSequence s) {
      if (!contains(s, '%')) {
        return s.toString();
      }
      return decode0(s);
    }
focal_method.class_method_signature: Encoding.decode(final CharSequence s)
focal_method.full_signature: static CharSequence decode(final CharSequence s)
focal_method.identifier: decode
focal_method.invocations: contains toString decode0
focal_method.modifiers: static
focal_method.parameters: (final CharSequence s)
focal_method.return: CharSequence
focal_method.signature: CharSequence decode(final CharSequence s)