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

Side by Side Diff: utils/tests/string_encoding/utf32_tests.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: updates to comments. 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("utf32_tests");
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 static final String testKoreanCharSubset = """
18 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
19 개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷
20 갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓""";
21 static final String testHanTwice = "二";
22
23 static final List<int> testKoreanCharSubsetUtf32be = const<int>[
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];
68
69 void registerTests(TestSuite suite) {
70 register("testUtf32BytesToString", testUtf32BytesToString, suite);
71 register("testEncodeToUtf32", testEncodeToUtf32, suite);
72 }
73
74 void testEncodeToUtf32() {
75 Expect.listEquals(testKoreanCharSubsetUtf32be,
76 encodeAsUtf32(testKoreanCharSubset),
77 "encode UTF-32(BE by default) Korean");
78 Expect.listEquals([
79 0x00, 0xac, 0x00, 0x00, 0x01, 0xac, 0x00, 0x00,
80 0x02, 0xac, 0x00, 0x00, 0x03, 0xac, 0x00, 0x00,
81 0x04, 0xac, 0x00, 0x00, 0x05, 0xac, 0x00, 0x00,
82 0x06, 0xac, 0x00, 0x00, 0x07, 0xac, 0x00, 0x00,
83 0x08, 0xac, 0x00, 0x00, 0x09, 0xac, 0x00, 0x00,
84 0x0a, 0xac, 0x00, 0x00, 0x0b, 0xac, 0x00, 0x00,
85 0x0c, 0xac, 0x00, 0x00, 0x0d, 0xac, 0x00, 0x00,
86 0x0e, 0xac, 0x00, 0x00, 0x0f, 0xac, 0x00, 0x00,
87 0x10, 0xac, 0x00, 0x00, 0x11, 0xac, 0x00, 0x00,
88 0x12, 0xac, 0x00, 0x00, 0x13, 0xac, 0x00, 0x00,
89 0x14, 0xac, 0x00, 0x00, 0x15, 0xac, 0x00, 0x00,
90 0x16, 0xac, 0x00, 0x00, 0x17, 0xac, 0x00, 0x00,
91 0x18, 0xac, 0x00, 0x00, 0x19, 0xac, 0x00, 0x00,
92 0x1a, 0xac, 0x00, 0x00, 0x1b, 0xac, 0x00, 0x00,
93 0x0a, 0x00, 0x00, 0x00, 0x1c, 0xac, 0x00, 0x00,
94 0x1d, 0xac, 0x00, 0x00, 0x1e, 0xac, 0x00, 0x00,
95 0x1f, 0xac, 0x00, 0x00, 0x20, 0xac, 0x00, 0x00,
96 0x21, 0xac, 0x00, 0x00, 0x22, 0xac, 0x00, 0x00,
97 0x23, 0xac, 0x00, 0x00, 0x24, 0xac, 0x00, 0x00,
98 0x25, 0xac, 0x00, 0x00, 0x26, 0xac, 0x00, 0x00,
99 0x27, 0xac, 0x00, 0x00, 0x28, 0xac, 0x00, 0x00,
100 0x29, 0xac, 0x00, 0x00, 0x2a, 0xac, 0x00, 0x00,
101 0x2b, 0xac, 0x00, 0x00, 0x2c, 0xac, 0x00, 0x00,
102 0x2d, 0xac, 0x00, 0x00, 0x2e, 0xac, 0x00, 0x00,
103 0x2f, 0xac, 0x00, 0x00, 0x30, 0xac, 0x00, 0x00,
104 0x31, 0xac, 0x00, 0x00, 0x32, 0xac, 0x00, 0x00,
105 0x33, 0xac, 0x00, 0x00, 0x34, 0xac, 0x00, 0x00,
106 0x35, 0xac, 0x00, 0x00, 0x36, 0xac, 0x00, 0x00,
107 0x37, 0xac, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
108 0x38, 0xac, 0x00, 0x00, 0x39, 0xac, 0x00, 0x00,
109 0x3a, 0xac, 0x00, 0x00, 0x3b, 0xac, 0x00, 0x00,
110 0x3c, 0xac, 0x00, 0x00, 0x3d, 0xac, 0x00, 0x00,
111 0x3e, 0xac, 0x00, 0x00, 0x3f, 0xac, 0x00, 0x00,
112 0x40, 0xac, 0x00, 0x00, 0x41, 0xac, 0x00, 0x00,
113 0x42, 0xac, 0x00, 0x00, 0x43, 0xac, 0x00, 0x00,
114 0x44, 0xac, 0x00, 0x00, 0x45, 0xac, 0x00, 0x00,
115 0x46, 0xac, 0x00, 0x00, 0x47, 0xac, 0x00, 0x00,
116 0x48, 0xac, 0x00, 0x00, 0x49, 0xac, 0x00, 0x00,
117 0x4a, 0xac, 0x00, 0x00, 0x4b, 0xac, 0x00, 0x00,
118 0x4c, 0xac, 0x00, 0x00, 0x4d, 0xac, 0x00, 0x00,
119 0x4e, 0xac, 0x00, 0x00, 0x4f, 0xac, 0x00, 0x00,
120 0x50, 0xac, 0x00, 0x00, 0x51, 0xac, 0x00, 0x00,
121 0x52, 0xac, 0x00, 0x00, 0x53, 0xac, 0x00, 0x00],
122 encodeAsUtf32le(testKoreanCharSubset),
123 "encode UTF-32(LE by default) Korean");
124 }
125
126 void testUtf32BytesToString() {
127 Expect.stringEquals("\ufffd", decodeFromUtf32([0]), "single byte");
128 Expect.stringEquals("\ufffd", decodeFromUtf32([0, 0, 0x4e]),
129 "short a byte");
130 Expect.stringEquals("\u4e8c\ufffd", decodeFromUtf32([0, 0, 0x4e, 0x8c, 0]),
131 "extra byte");
132
133 Expect.stringEquals(testHanTwice, decodeFromUtf32([0, 0, 0x4e, 0x8c]),
134 "twice variation 1");
135 Expect.stringEquals(testHanTwice,
136 decodeFromUtf32([0, 0, 0xfe, 0xff, 0, 0, 0x4e, 0x8c]),
137 "twice variation 2");
138 Expect.stringEquals(testHanTwice,
139 decodeFromUtf32([0xff, 0xfe, 0, 0, 0x8c, 0x4e, 0, 0]),
140 "twice variation 3");
141
142 Expect.stringEquals(testHanTwice, decodeFromUtf32be([0, 0, 0x4e, 0x8c]),
143 "twice variation 4");
144 Expect.stringEquals(testHanTwice,
145 decodeFromUtf32be([0, 0, 0xfe, 0xff, 0, 0, 0x4e, 0x8c]),
146 "twice variation 5");
147
148 Expect.stringEquals(testHanTwice, decodeFromUtf32le([0x8c, 0x4e, 0, 0]),
149 "twice variation 6");
150 Expect.stringEquals(testHanTwice,
151 decodeFromUtf32le([0xff, 0xfe, 0, 0, 0x8c, 0x4e, 0, 0]),
152 "twice variation 7");
153
154 Expect.stringEquals(testKoreanCharSubset,
155 decodeFromUtf32(testKoreanCharSubsetUtf32be),
156 "UTF-32BE Korean");
157 }
158 }
OLDNEW
« no previous file with comments | « utils/tests/string_encoding/utf16_tests.dart ('k') | utils/tests/string_encoding/utf8_tests.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698