Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: utils/tests/string_encoding/Utf32Tests.dart

Issue 9233041: String encoding utility methods and tests for Unicode, UTF-8, -16 and -32. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: remove notes to self Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env dart
2 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 // for details. All rights reserved. Use of this source code is governed by a
4 // BSD-style license that can be found in the LICENSE file.
5
6 #library("Utf32Tests");
7 #import("DUnit.dart");
8 #import("../../string_encoding/Utf32.dart");
9
10 void main() {
11 TestSuite suite = new TestSuite();
12 suite.registerTestClass(new Utf32Tests());
13 suite.run();
14 }
15
16 class Utf32Tests extends TestClass {
17 void registerTests(TestSuite suite) {
18 register("testUtf32BytesToString", testUtf32BytesToString, suite);
19 register("testEncodeToUtf32", testEncodeToUtf32, suite);
20 }
21
22 void testEncodeToUtf32() {
Søren Gjesse 2012/02/01 11:25:25 Again, share duplicate test data.
dcarlson 2012/02/01 22:18:46 Done.
23 Expect.listEquals([
24 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0xac, 0x00,
25 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0xac, 0x02,
26 0x00, 0x00, 0xac, 0x03, 0x00, 0x00, 0xac, 0x04,
27 0x00, 0x00, 0xac, 0x05, 0x00, 0x00, 0xac, 0x06,
28 0x00, 0x00, 0xac, 0x07, 0x00, 0x00, 0xac, 0x08,
29 0x00, 0x00, 0xac, 0x09, 0x00, 0x00, 0xac, 0x0a,
30 0x00, 0x00, 0xac, 0x0b, 0x00, 0x00, 0xac, 0x0c,
31 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0xac, 0x0e,
32 0x00, 0x00, 0xac, 0x0f, 0x00, 0x00, 0xac, 0x10,
33 0x00, 0x00, 0xac, 0x11, 0x00, 0x00, 0xac, 0x12,
34 0x00, 0x00, 0xac, 0x13, 0x00, 0x00, 0xac, 0x14,
35 0x00, 0x00, 0xac, 0x15, 0x00, 0x00, 0xac, 0x16,
36 0x00, 0x00, 0xac, 0x17, 0x00, 0x00, 0xac, 0x18,
37 0x00, 0x00, 0xac, 0x19, 0x00, 0x00, 0xac, 0x1a,
38 0x00, 0x00, 0xac, 0x1b, 0x00, 0x00, 0x00, 0x0a,
39 0x00, 0x00, 0xac, 0x1c, 0x00, 0x00, 0xac, 0x1d,
40 0x00, 0x00, 0xac, 0x1e, 0x00, 0x00, 0xac, 0x1f,
41 0x00, 0x00, 0xac, 0x20, 0x00, 0x00, 0xac, 0x21,
42 0x00, 0x00, 0xac, 0x22, 0x00, 0x00, 0xac, 0x23,
43 0x00, 0x00, 0xac, 0x24, 0x00, 0x00, 0xac, 0x25,
44 0x00, 0x00, 0xac, 0x26, 0x00, 0x00, 0xac, 0x27,
45 0x00, 0x00, 0xac, 0x28, 0x00, 0x00, 0xac, 0x29,
46 0x00, 0x00, 0xac, 0x2a, 0x00, 0x00, 0xac, 0x2b,
47 0x00, 0x00, 0xac, 0x2c, 0x00, 0x00, 0xac, 0x2d,
48 0x00, 0x00, 0xac, 0x2e, 0x00, 0x00, 0xac, 0x2f,
49 0x00, 0x00, 0xac, 0x30, 0x00, 0x00, 0xac, 0x31,
50 0x00, 0x00, 0xac, 0x32, 0x00, 0x00, 0xac, 0x33,
51 0x00, 0x00, 0xac, 0x34, 0x00, 0x00, 0xac, 0x35,
52 0x00, 0x00, 0xac, 0x36, 0x00, 0x00, 0xac, 0x37,
53 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0xac, 0x38,
54 0x00, 0x00, 0xac, 0x39, 0x00, 0x00, 0xac, 0x3a,
55 0x00, 0x00, 0xac, 0x3b, 0x00, 0x00, 0xac, 0x3c,
56 0x00, 0x00, 0xac, 0x3d, 0x00, 0x00, 0xac, 0x3e,
57 0x00, 0x00, 0xac, 0x3f, 0x00, 0x00, 0xac, 0x40,
58 0x00, 0x00, 0xac, 0x41, 0x00, 0x00, 0xac, 0x42,
59 0x00, 0x00, 0xac, 0x43, 0x00, 0x00, 0xac, 0x44,
60 0x00, 0x00, 0xac, 0x45, 0x00, 0x00, 0xac, 0x46,
61 0x00, 0x00, 0xac, 0x47, 0x00, 0x00, 0xac, 0x48,
62 0x00, 0x00, 0xac, 0x49, 0x00, 0x00, 0xac, 0x4a,
63 0x00, 0x00, 0xac, 0x4b, 0x00, 0x00, 0xac, 0x4c,
64 0x00, 0x00, 0xac, 0x4d, 0x00, 0x00, 0xac, 0x4e,
65 0x00, 0x00, 0xac, 0x4f, 0x00, 0x00, 0xac, 0x50,
66 0x00, 0x00, 0xac, 0x51, 0x00, 0x00, 0xac, 0x52,
67 0x00, 0x00, 0xac, 0x53], encodeAsUtf32("""
68 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
69 개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷
70 갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓"""),
71 "encode UTF-32(BE by default) Korean");
72 Expect.listEquals([
73 0x00, 0xac, 0x00, 0x00, 0x01, 0xac, 0x00, 0x00,
74 0x02, 0xac, 0x00, 0x00, 0x03, 0xac, 0x00, 0x00,
75 0x04, 0xac, 0x00, 0x00, 0x05, 0xac, 0x00, 0x00,
76 0x06, 0xac, 0x00, 0x00, 0x07, 0xac, 0x00, 0x00,
77 0x08, 0xac, 0x00, 0x00, 0x09, 0xac, 0x00, 0x00,
78 0x0a, 0xac, 0x00, 0x00, 0x0b, 0xac, 0x00, 0x00,
79 0x0c, 0xac, 0x00, 0x00, 0x0d, 0xac, 0x00, 0x00,
80 0x0e, 0xac, 0x00, 0x00, 0x0f, 0xac, 0x00, 0x00,
81 0x10, 0xac, 0x00, 0x00, 0x11, 0xac, 0x00, 0x00,
82 0x12, 0xac, 0x00, 0x00, 0x13, 0xac, 0x00, 0x00,
83 0x14, 0xac, 0x00, 0x00, 0x15, 0xac, 0x00, 0x00,
84 0x16, 0xac, 0x00, 0x00, 0x17, 0xac, 0x00, 0x00,
85 0x18, 0xac, 0x00, 0x00, 0x19, 0xac, 0x00, 0x00,
86 0x1a, 0xac, 0x00, 0x00, 0x1b, 0xac, 0x00, 0x00,
87 0x0a, 0x00, 0x00, 0x00, 0x1c, 0xac, 0x00, 0x00,
88 0x1d, 0xac, 0x00, 0x00, 0x1e, 0xac, 0x00, 0x00,
89 0x1f, 0xac, 0x00, 0x00, 0x20, 0xac, 0x00, 0x00,
90 0x21, 0xac, 0x00, 0x00, 0x22, 0xac, 0x00, 0x00,
91 0x23, 0xac, 0x00, 0x00, 0x24, 0xac, 0x00, 0x00,
92 0x25, 0xac, 0x00, 0x00, 0x26, 0xac, 0x00, 0x00,
93 0x27, 0xac, 0x00, 0x00, 0x28, 0xac, 0x00, 0x00,
94 0x29, 0xac, 0x00, 0x00, 0x2a, 0xac, 0x00, 0x00,
95 0x2b, 0xac, 0x00, 0x00, 0x2c, 0xac, 0x00, 0x00,
96 0x2d, 0xac, 0x00, 0x00, 0x2e, 0xac, 0x00, 0x00,
97 0x2f, 0xac, 0x00, 0x00, 0x30, 0xac, 0x00, 0x00,
98 0x31, 0xac, 0x00, 0x00, 0x32, 0xac, 0x00, 0x00,
99 0x33, 0xac, 0x00, 0x00, 0x34, 0xac, 0x00, 0x00,
100 0x35, 0xac, 0x00, 0x00, 0x36, 0xac, 0x00, 0x00,
101 0x37, 0xac, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
102 0x38, 0xac, 0x00, 0x00, 0x39, 0xac, 0x00, 0x00,
103 0x3a, 0xac, 0x00, 0x00, 0x3b, 0xac, 0x00, 0x00,
104 0x3c, 0xac, 0x00, 0x00, 0x3d, 0xac, 0x00, 0x00,
105 0x3e, 0xac, 0x00, 0x00, 0x3f, 0xac, 0x00, 0x00,
106 0x40, 0xac, 0x00, 0x00, 0x41, 0xac, 0x00, 0x00,
107 0x42, 0xac, 0x00, 0x00, 0x43, 0xac, 0x00, 0x00,
108 0x44, 0xac, 0x00, 0x00, 0x45, 0xac, 0x00, 0x00,
109 0x46, 0xac, 0x00, 0x00, 0x47, 0xac, 0x00, 0x00,
110 0x48, 0xac, 0x00, 0x00, 0x49, 0xac, 0x00, 0x00,
111 0x4a, 0xac, 0x00, 0x00, 0x4b, 0xac, 0x00, 0x00,
112 0x4c, 0xac, 0x00, 0x00, 0x4d, 0xac, 0x00, 0x00,
113 0x4e, 0xac, 0x00, 0x00, 0x4f, 0xac, 0x00, 0x00,
114 0x50, 0xac, 0x00, 0x00, 0x51, 0xac, 0x00, 0x00,
115 0x52, 0xac, 0x00, 0x00, 0x53, 0xac, 0x00, 0x00], encodeAsUtf32le("""
116 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
117 개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷
118 갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓"""),
119 "encode UTF-32(LE by default) Korean");
120 }
121
122 void testUtf32BytesToString() {
123 Expect.stringEquals("\ufffd", decodeFromUtf32([0]), "single byte");
124 Expect.stringEquals("\ufffd", decodeFromUtf32([0, 0, 0x4e]),
125 "short a byte");
126 Expect.stringEquals("\u4e8c\ufffd", decodeFromUtf32([0, 0, 0x4e, 0x8c, 0]),
127 "extra byte");
128
129 Expect.stringEquals("二", decodeFromUtf32([0, 0, 0x4e, 0x8c]),
130 "twice variation 1");
131 Expect.stringEquals("二",
132 decodeFromUtf32([0, 0, 0xfe, 0xff, 0, 0, 0x4e, 0x8c]),
133 "twice variation 2");
134 Expect.stringEquals("二",
135 decodeFromUtf32([0xff, 0xfe, 0, 0, 0x8c, 0x4e, 0, 0]),
136 "twice variation 3");
137
138 Expect.stringEquals("二", decodeFromUtf32be([0, 0, 0x4e, 0x8c]),
139 "twice variation 4");
140 Expect.stringEquals("二",
141 decodeFromUtf32be([0, 0, 0xfe, 0xff, 0, 0, 0x4e, 0x8c]),
142 "twice variation 5");
143
144 Expect.stringEquals("二", decodeFromUtf32le([0x8c, 0x4e, 0, 0]),
145 "twice variation 6");
146 Expect.stringEquals("二",
147 decodeFromUtf32le([0xff, 0xfe, 0, 0, 0x8c, 0x4e, 0, 0]),
148 "twice variation 7");
149
150 Expect.stringEquals("""
151 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
152 개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷
153 갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓""",
154 decodeFromUtf32([
155 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0xac, 0x00,
156 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0xac, 0x02,
157 0x00, 0x00, 0xac, 0x03, 0x00, 0x00, 0xac, 0x04,
158 0x00, 0x00, 0xac, 0x05, 0x00, 0x00, 0xac, 0x06,
159 0x00, 0x00, 0xac, 0x07, 0x00, 0x00, 0xac, 0x08,
160 0x00, 0x00, 0xac, 0x09, 0x00, 0x00, 0xac, 0x0a,
161 0x00, 0x00, 0xac, 0x0b, 0x00, 0x00, 0xac, 0x0c,
162 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0xac, 0x0e,
163 0x00, 0x00, 0xac, 0x0f, 0x00, 0x00, 0xac, 0x10,
164 0x00, 0x00, 0xac, 0x11, 0x00, 0x00, 0xac, 0x12,
165 0x00, 0x00, 0xac, 0x13, 0x00, 0x00, 0xac, 0x14,
166 0x00, 0x00, 0xac, 0x15, 0x00, 0x00, 0xac, 0x16,
167 0x00, 0x00, 0xac, 0x17, 0x00, 0x00, 0xac, 0x18,
168 0x00, 0x00, 0xac, 0x19, 0x00, 0x00, 0xac, 0x1a,
169 0x00, 0x00, 0xac, 0x1b, 0x00, 0x00, 0x00, 0x0a,
170 0x00, 0x00, 0xac, 0x1c, 0x00, 0x00, 0xac, 0x1d,
171 0x00, 0x00, 0xac, 0x1e, 0x00, 0x00, 0xac, 0x1f,
172 0x00, 0x00, 0xac, 0x20, 0x00, 0x00, 0xac, 0x21,
173 0x00, 0x00, 0xac, 0x22, 0x00, 0x00, 0xac, 0x23,
174 0x00, 0x00, 0xac, 0x24, 0x00, 0x00, 0xac, 0x25,
175 0x00, 0x00, 0xac, 0x26, 0x00, 0x00, 0xac, 0x27,
176 0x00, 0x00, 0xac, 0x28, 0x00, 0x00, 0xac, 0x29,
177 0x00, 0x00, 0xac, 0x2a, 0x00, 0x00, 0xac, 0x2b,
178 0x00, 0x00, 0xac, 0x2c, 0x00, 0x00, 0xac, 0x2d,
179 0x00, 0x00, 0xac, 0x2e, 0x00, 0x00, 0xac, 0x2f,
180 0x00, 0x00, 0xac, 0x30, 0x00, 0x00, 0xac, 0x31,
181 0x00, 0x00, 0xac, 0x32, 0x00, 0x00, 0xac, 0x33,
182 0x00, 0x00, 0xac, 0x34, 0x00, 0x00, 0xac, 0x35,
183 0x00, 0x00, 0xac, 0x36, 0x00, 0x00, 0xac, 0x37,
184 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0xac, 0x38,
185 0x00, 0x00, 0xac, 0x39, 0x00, 0x00, 0xac, 0x3a,
186 0x00, 0x00, 0xac, 0x3b, 0x00, 0x00, 0xac, 0x3c,
187 0x00, 0x00, 0xac, 0x3d, 0x00, 0x00, 0xac, 0x3e,
188 0x00, 0x00, 0xac, 0x3f, 0x00, 0x00, 0xac, 0x40,
189 0x00, 0x00, 0xac, 0x41, 0x00, 0x00, 0xac, 0x42,
190 0x00, 0x00, 0xac, 0x43, 0x00, 0x00, 0xac, 0x44,
191 0x00, 0x00, 0xac, 0x45, 0x00, 0x00, 0xac, 0x46,
192 0x00, 0x00, 0xac, 0x47, 0x00, 0x00, 0xac, 0x48,
193 0x00, 0x00, 0xac, 0x49, 0x00, 0x00, 0xac, 0x4a,
194 0x00, 0x00, 0xac, 0x4b, 0x00, 0x00, 0xac, 0x4c,
195 0x00, 0x00, 0xac, 0x4d, 0x00, 0x00, 0xac, 0x4e,
196 0x00, 0x00, 0xac, 0x4f, 0x00, 0x00, 0xac, 0x50,
197 0x00, 0x00, 0xac, 0x51, 0x00, 0x00, 0xac, 0x52,
198 0x00, 0x00, 0xac, 0x53]), "UTF-32BE Korean");
199 }
200 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698