MCPcopy Create free account
hub / github.com/ReadyTalk/avian / testDecode

Method testDecode

test/Strings.java:49–106  ·  view source on GitHub ↗
(final boolean prematureEOS)

Source from the content-addressed store, hash-verified

47 }
48
49 private static void testDecode(final boolean prematureEOS) throws Exception {
50 java.io.Reader r = new java.io.InputStreamReader
51 (new java.io.InputStream() {
52 int state = 0;
53
54 public int read() {
55 throw new UnsupportedOperationException();
56 }
57
58 public int read(byte[] b, int offset, int length) {
59 if (length == 0) return 0;
60
61 switch (state) {
62 case 0:
63 b[offset] = (byte) 0xc2;
64 state = 1;
65 return 1;
66
67 case 1:
68 b[offset] = (byte) 0xae;
69 state = 2;
70 return 1;
71
72 case 2:
73 b[offset] = (byte) 0xea;
74 state = 3;
75 return 1;
76
77 case 3:
78 b[offset] = (byte) 0xba;
79 state = prematureEOS ? 5 : 4;
80 return 1;
81
82 case 4:
83 b[offset] = (byte) 0xaf;
84 state = 5;
85 return 1;
86
87 case 5:
88 return -1;
89
90 default:
91 throw new RuntimeException();
92 }
93 }
94 }, "UTF-8");
95
96 char[] buffer = new char[2];
97 int offset = 0;
98 while (offset < buffer.length) {
99 int c = r.read(buffer, offset, buffer.length - offset);
100 if (c == -1) break;
101 offset += c;
102 }
103
104 expect(new String(buffer, 0, offset).equals
105 (prematureEOS ? "\u00ae\ufffd" : "\u00ae\uaeaf"));
106 }

Callers 1

mainMethod · 0.95

Calls 3

readMethod · 0.95
expectMethod · 0.95
equalsMethod · 0.65

Tested by

no test coverage detected