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

Unified Diff: utils/tests/string_encoding/utf8_tests.dart

Issue 9410001: restructure string decoding to support iterable use and include benchmarks for UTF-8 decoding. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: "stop using introduced variable _length. Improve docs. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utils/tests/string_encoding/utf8_benchmarks.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/tests/string_encoding/utf8_tests.dart
diff --git a/utils/tests/string_encoding/utf8_tests.dart b/utils/tests/string_encoding/utf8_tests.dart
index 59cd27b6384b2f4d6f440e3fd963b45c7d0e0fae..fec894c41e472f2c5c43c344468963e61cfe70c5 100755
--- a/utils/tests/string_encoding/utf8_tests.dart
+++ b/utils/tests/string_encoding/utf8_tests.dart
@@ -26,7 +26,7 @@ class Utf8Tests extends TestClass {
0x73, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x74,
0x68, 0x65, 0x20, 0x6c, 0x61, 0x7a, 0x79, 0x20,
0x64, 0x6f, 0x67, 0x2e];
-
+
static final String testDanishPhrase = "Quizdeltagerne spiste jordbær med " +
"fløde mens cirkusklovnen Wolther spillede på xylofon.";
@@ -124,28 +124,30 @@ class Utf8Tests extends TestClass {
0xbb, 0xe3, 0x82, 0xb9, 0xe3, 0x83, 0xb3];
void registerTests(TestSuite suite) {
- register("testUtf8bytesToCodepoints", testUtf8bytesToCodepoints, suite);
- register("testUtf8BytesToString", testUtf8BytesToString, suite);
- register("testEncodeToUtf8", testEncodeToUtf8, suite);
+ register("Utf8Tests.testUtf8bytesToCodepoints", testUtf8bytesToCodepoints,
+ suite);
+ register("Utf8Tests.testUtf8BytesToString", testUtf8BytesToString, suite);
+ register("Utf8Tests.testEncodeToUtf8", testEncodeToUtf8, suite);
+ register("Utf8Tests.testIterableMethods", testIterableMethods, suite);
}
void testEncodeToUtf8() {
- Expect.listEquals(testEnglishUtf8, encodeAsUtf8(testEnglishPhrase),
+ Expect.listEquals(testEnglishUtf8, encodeUtf8(testEnglishPhrase),
"english to utf8");
- Expect.listEquals(testDanishUtf8, encodeAsUtf8(testDanishPhrase),
+ Expect.listEquals(testDanishUtf8, encodeUtf8(testDanishPhrase),
"encode danish to utf8");
- Expect.listEquals(testHebrewUtf8, encodeAsUtf8(testHebrewPhrase),
+ Expect.listEquals(testHebrewUtf8, encodeUtf8(testHebrewPhrase),
"Hebrew to utf8");
- Expect.listEquals(testRussianUtf8, encodeAsUtf8(testRussianPhrase),
+ Expect.listEquals(testRussianUtf8, encodeUtf8(testRussianPhrase),
"Russian to utf8");
- Expect.listEquals(testGreekUtf8, encodeAsUtf8(testGreekPhrase),
+ Expect.listEquals(testGreekUtf8, encodeUtf8(testGreekPhrase),
"Greek to utf8");
- Expect.listEquals(testKatakanaUtf8, encodeAsUtf8(testKatakanaPhrase),
+ Expect.listEquals(testKatakanaUtf8, encodeUtf8(testKatakanaPhrase),
"Katakana to utf8");
}
@@ -155,6 +157,7 @@ class Utf8Tests extends TestClass {
0x83, 0xce, 0xbc, 0xce, 0xb5]), "κόσμε");
// boundary conditions: First possible sequence of a certain length
+ Expect.listEquals([], _utf8ToCodepoints([]), "no input");
Expect.listEquals([0x0], _utf8ToCodepoints([0x0]), "0");
Expect.listEquals([0x80], _utf8ToCodepoints([0xc2, 0x80]), "80");
Expect.listEquals([0x800],
@@ -437,21 +440,38 @@ class Utf8Tests extends TestClass {
void testUtf8BytesToString() {
Expect.stringEquals(testEnglishPhrase,
- decodeFromUtf8(testEnglishUtf8), "English");
+ decodeUtf8(testEnglishUtf8), "English");
Expect.stringEquals(testDanishPhrase,
- decodeFromUtf8(testDanishUtf8), "Danish");
+ decodeUtf8(testDanishUtf8), "Danish");
Expect.stringEquals(testHebrewPhrase,
- decodeFromUtf8(testHebrewUtf8), "Hebrew");
+ decodeUtf8(testHebrewUtf8), "Hebrew");
Expect.stringEquals(testRussianPhrase,
- decodeFromUtf8(testRussianUtf8), "Russian");
+ decodeUtf8(testRussianUtf8), "Russian");
Expect.stringEquals(testGreekPhrase,
- decodeFromUtf8(testGreekUtf8), "Greek");
+ decodeUtf8(testGreekUtf8), "Greek");
+
+ Expect.stringEquals(testKatakanaPhrase,
+ decodeUtf8(testKatakanaUtf8), "Katakana");
+ }
+
+ void testIterableMethods() {
+ IterableUtf8Decoder englishDecoder = decodeUtf8AsIterable(testEnglishUtf8);
+ // get the first character
+ Expect.equals(testEnglishUtf8[0], englishDecoder.iterator().next());
+ // get the whole translation using the Iterable interface
+ Expect.stringEquals(testEnglishPhrase,
+ new String.fromCharCodes(new List<int>.from(englishDecoder)));
+ IterableUtf8Decoder kataDecoder = decodeUtf8AsIterable(testKatakanaUtf8);
+ // get the first character
+ Expect.equals(testKatakanaPhrase.charCodes()[0],
+ kataDecoder.iterator().next());
+ // get the whole translation using the Iterable interface
Expect.stringEquals(testKatakanaPhrase,
- decodeFromUtf8(testKatakanaUtf8), "Katakana");
+ new String.fromCharCodes(new List<int>.from(kataDecoder)));
}
}
« no previous file with comments | « utils/tests/string_encoding/utf8_benchmarks.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698