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

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: String encoding utility methods and tests for Unicode, UTF-8, -16 and -32. 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) 2011, 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() {
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 0xff, 0xfe, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00,
74 0x01, 0xac, 0x00, 0x00, 0x02, 0xac, 0x00, 0x00,
75 0x03, 0xac, 0x00, 0x00, 0x04, 0xac, 0x00, 0x00,
76 0x05, 0xac, 0x00, 0x00, 0x06, 0xac, 0x00, 0x00,
77 0x07, 0xac, 0x00, 0x00, 0x08, 0xac, 0x00, 0x00,
78 0x09, 0xac, 0x00, 0x00, 0x0a, 0xac, 0x00, 0x00,
79 0x0b, 0xac, 0x00, 0x00, 0x0c, 0xac, 0x00, 0x00,
80 0x0d, 0xac, 0x00, 0x00, 0x0e, 0xac, 0x00, 0x00,
81 0x0f, 0xac, 0x00, 0x00, 0x10, 0xac, 0x00, 0x00,
82 0x11, 0xac, 0x00, 0x00, 0x12, 0xac, 0x00, 0x00,
83 0x13, 0xac, 0x00, 0x00, 0x14, 0xac, 0x00, 0x00,
84 0x15, 0xac, 0x00, 0x00, 0x16, 0xac, 0x00, 0x00,
85 0x17, 0xac, 0x00, 0x00, 0x18, 0xac, 0x00, 0x00,
86 0x19, 0xac, 0x00, 0x00, 0x1a, 0xac, 0x00, 0x00,
87 0x1b, 0xac, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
88 0x1c, 0xac, 0x00, 0x00, 0x1d, 0xac, 0x00, 0x00,
89 0x1e, 0xac, 0x00, 0x00, 0x1f, 0xac, 0x00, 0x00,
90 0x20, 0xac, 0x00, 0x00, 0x21, 0xac, 0x00, 0x00,
91 0x22, 0xac, 0x00, 0x00, 0x23, 0xac, 0x00, 0x00,
92 0x24, 0xac, 0x00, 0x00, 0x25, 0xac, 0x00, 0x00,
93 0x26, 0xac, 0x00, 0x00, 0x27, 0xac, 0x00, 0x00,
94 0x28, 0xac, 0x00, 0x00, 0x29, 0xac, 0x00, 0x00,
95 0x2a, 0xac, 0x00, 0x00, 0x2b, 0xac, 0x00, 0x00,
96 0x2c, 0xac, 0x00, 0x00, 0x2d, 0xac, 0x00, 0x00,
97 0x2e, 0xac, 0x00, 0x00, 0x2f, 0xac, 0x00, 0x00,
98 0x30, 0xac, 0x00, 0x00, 0x31, 0xac, 0x00, 0x00,
99 0x32, 0xac, 0x00, 0x00, 0x33, 0xac, 0x00, 0x00,
100 0x34, 0xac, 0x00, 0x00, 0x35, 0xac, 0x00, 0x00,
101 0x36, 0xac, 0x00, 0x00, 0x37, 0xac, 0x00, 0x00,
102 0x0a, 0x00, 0x00, 0x00, 0x38, 0xac, 0x00, 0x00,
103 0x39, 0xac, 0x00, 0x00, 0x3a, 0xac, 0x00, 0x00,
104 0x3b, 0xac, 0x00, 0x00, 0x3c, 0xac, 0x00, 0x00,
105 0x3d, 0xac, 0x00, 0x00, 0x3e, 0xac, 0x00, 0x00,
106 0x3f, 0xac, 0x00, 0x00, 0x40, 0xac, 0x00, 0x00,
107 0x41, 0xac, 0x00, 0x00, 0x42, 0xac, 0x00, 0x00,
108 0x43, 0xac, 0x00, 0x00, 0x44, 0xac, 0x00, 0x00,
109 0x45, 0xac, 0x00, 0x00, 0x46, 0xac, 0x00, 0x00,
110 0x47, 0xac, 0x00, 0x00, 0x48, 0xac, 0x00, 0x00,
111 0x49, 0xac, 0x00, 0x00, 0x4a, 0xac, 0x00, 0x00,
112 0x4b, 0xac, 0x00, 0x00, 0x4c, 0xac, 0x00, 0x00,
113 0x4d, 0xac, 0x00, 0x00, 0x4e, 0xac, 0x00, 0x00,
114 0x4f, 0xac, 0x00, 0x00, 0x50, 0xac, 0x00, 0x00,
115 0x51, 0xac, 0x00, 0x00, 0x52, 0xac, 0x00, 0x00,
116 0x53, 0xac, 0x00, 0x00], encodeAsUtf32le("""
117 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
118 개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷
119 갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓"""),
120 "encode UTF-32(LE by default) Korean");
121
122 }
123
124 void testUtf32BytesToString() {
125 Expect.stringEquals("二", decodeFromUtf32([0, 0, 0x4e, 0x8c]),
126 "twice variation 1");
127 Expect.stringEquals("二",
128 decodeFromUtf32([0, 0, 0xfe, 0xff, 0, 0, 0x4e, 0x8c]),
129 "twice variation 2");
130 Expect.stringEquals("二",
131 decodeFromUtf32([0xff, 0xfe, 0, 0, 0x8c, 0x4e, 0, 0]),
132 "twice variation 3");
133
134 Expect.stringEquals("二", decodeFromUtf32be([0, 0, 0x4e, 0x8c]),
135 "twice variation 4");
136 Expect.stringEquals("二",
137 decodeFromUtf32be([0, 0, 0xfe, 0xff, 0, 0, 0x4e, 0x8c]),
138 "twice variation 5");
139
140 Expect.stringEquals("二", decodeFromUtf32le([0x8c, 0x4e, 0, 0]),
141 "twice variation 6");
142 Expect.stringEquals("二",
143 decodeFromUtf32le([0xff, 0xfe, 0, 0, 0x8c, 0x4e, 0, 0]),
144 "twice variation 7");
145
146 Expect.stringEquals("""
147 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
148 개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷
149 갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓""",
150 decodeFromUtf32([
151 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0xac, 0x00,
152 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0xac, 0x02,
153 0x00, 0x00, 0xac, 0x03, 0x00, 0x00, 0xac, 0x04,
154 0x00, 0x00, 0xac, 0x05, 0x00, 0x00, 0xac, 0x06,
155 0x00, 0x00, 0xac, 0x07, 0x00, 0x00, 0xac, 0x08,
156 0x00, 0x00, 0xac, 0x09, 0x00, 0x00, 0xac, 0x0a,
157 0x00, 0x00, 0xac, 0x0b, 0x00, 0x00, 0xac, 0x0c,
158 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0xac, 0x0e,
159 0x00, 0x00, 0xac, 0x0f, 0x00, 0x00, 0xac, 0x10,
160 0x00, 0x00, 0xac, 0x11, 0x00, 0x00, 0xac, 0x12,
161 0x00, 0x00, 0xac, 0x13, 0x00, 0x00, 0xac, 0x14,
162 0x00, 0x00, 0xac, 0x15, 0x00, 0x00, 0xac, 0x16,
163 0x00, 0x00, 0xac, 0x17, 0x00, 0x00, 0xac, 0x18,
164 0x00, 0x00, 0xac, 0x19, 0x00, 0x00, 0xac, 0x1a,
165 0x00, 0x00, 0xac, 0x1b, 0x00, 0x00, 0x00, 0x0a,
166 0x00, 0x00, 0xac, 0x1c, 0x00, 0x00, 0xac, 0x1d,
167 0x00, 0x00, 0xac, 0x1e, 0x00, 0x00, 0xac, 0x1f,
168 0x00, 0x00, 0xac, 0x20, 0x00, 0x00, 0xac, 0x21,
169 0x00, 0x00, 0xac, 0x22, 0x00, 0x00, 0xac, 0x23,
170 0x00, 0x00, 0xac, 0x24, 0x00, 0x00, 0xac, 0x25,
171 0x00, 0x00, 0xac, 0x26, 0x00, 0x00, 0xac, 0x27,
172 0x00, 0x00, 0xac, 0x28, 0x00, 0x00, 0xac, 0x29,
173 0x00, 0x00, 0xac, 0x2a, 0x00, 0x00, 0xac, 0x2b,
174 0x00, 0x00, 0xac, 0x2c, 0x00, 0x00, 0xac, 0x2d,
175 0x00, 0x00, 0xac, 0x2e, 0x00, 0x00, 0xac, 0x2f,
176 0x00, 0x00, 0xac, 0x30, 0x00, 0x00, 0xac, 0x31,
177 0x00, 0x00, 0xac, 0x32, 0x00, 0x00, 0xac, 0x33,
178 0x00, 0x00, 0xac, 0x34, 0x00, 0x00, 0xac, 0x35,
179 0x00, 0x00, 0xac, 0x36, 0x00, 0x00, 0xac, 0x37,
180 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0xac, 0x38,
181 0x00, 0x00, 0xac, 0x39, 0x00, 0x00, 0xac, 0x3a,
182 0x00, 0x00, 0xac, 0x3b, 0x00, 0x00, 0xac, 0x3c,
183 0x00, 0x00, 0xac, 0x3d, 0x00, 0x00, 0xac, 0x3e,
184 0x00, 0x00, 0xac, 0x3f, 0x00, 0x00, 0xac, 0x40,
185 0x00, 0x00, 0xac, 0x41, 0x00, 0x00, 0xac, 0x42,
186 0x00, 0x00, 0xac, 0x43, 0x00, 0x00, 0xac, 0x44,
187 0x00, 0x00, 0xac, 0x45, 0x00, 0x00, 0xac, 0x46,
188 0x00, 0x00, 0xac, 0x47, 0x00, 0x00, 0xac, 0x48,
189 0x00, 0x00, 0xac, 0x49, 0x00, 0x00, 0xac, 0x4a,
190 0x00, 0x00, 0xac, 0x4b, 0x00, 0x00, 0xac, 0x4c,
191 0x00, 0x00, 0xac, 0x4d, 0x00, 0x00, 0xac, 0x4e,
192 0x00, 0x00, 0xac, 0x4f, 0x00, 0x00, 0xac, 0x50,
193 0x00, 0x00, 0xac, 0x51, 0x00, 0x00, 0xac, 0x52,
194 0x00, 0x00, 0xac, 0x53]), "UTF-32BE Korean");
195 }
196 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698