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

Side by Side Diff: tests/corelib/string_from_list_test.dart

Issue 2989473002: Migrated test block 27 to Dart 2.0. (Closed)
Patch Set: Addressed Bob's nits and fixed test failures Created 3 years, 5 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
OLDNEW
(Empty)
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 import "package:expect/expect.dart";
6
7 void main() {
8 Expect.equals("", new String.fromCharCodes(new List(0)));
9 Expect.equals("", new String.fromCharCodes([]));
10 Expect.equals("", new String.fromCharCodes(const []));
11 Expect.equals("AB", new String.fromCharCodes([65, 66]));
12 Expect.equals("AB", new String.fromCharCodes(const [65, 66]));
13 Expect.equals("Ærø", new String.fromCharCodes(const [0xc6, 0x72, 0xf8]));
14 Expect.equals("\u{1234}", new String.fromCharCodes([0x1234]));
15 Expect.equals("\u{12345}*", new String.fromCharCodes([0x12345, 42]));
16 Expect.equals("", new String.fromCharCodes(new List()));
17 {
18 var a = new List();
19 a.add(65);
20 a.add(66);
21 Expect.equals("AB", new String.fromCharCodes(a));
22 }
23
24 // Long list (bug 6919).
25 for (int len in [499, 500, 501, 999, 100000]) {
26 List<int> list = new List(len);
27 for (int i = 0; i < len; i++) {
28 list[i] = 65 + (i % 26);
29 }
30 for (int i = len - 9; i < len; i++) {
31 list[i] = 48 + (len - i);
32 }
33 // We should not throw a stack overflow here.
34 String long = new String.fromCharCodes(list);
35 // Minimal sanity checking on the string.
36 Expect.isTrue(long.startsWith('ABCDE'));
37 Expect.isTrue(long.endsWith('987654321'));
38 int middle = len ~/ 2;
39 middle -= middle % 26;
40 Expect.equals('XYZABC', long.substring(middle - 3, middle + 3));
41 Expect.equals(len, long.length);
42 }
43
44 // Should work with iterables and non-default-lists (http://dartbug.com/8922)
45 Expect.equals("CBA", new String.fromCharCodes([65, 66, 67].reversed));
46 Expect.equals(
47 "BCD", new String.fromCharCodes([65, 66, 67].map((x) => x + 1)));
48 Expect.equals(
49 "AC", new String.fromCharCodes([0x41, 0x42, 0x43].where((x) => x.isOdd)));
50 Expect.equals(
51 "CE",
52 new String.fromCharCodes(
53 [0x41, 0x42, 0x43].where((x) => x.isOdd).map((x) => x + 2)));
54 Expect.equals(
55 "ABC", new String.fromCharCodes(new Iterable.generate(3, (x) => 65 + x)));
56 Expect.equals("ABC", new String.fromCharCodes("ABC".codeUnits));
57 Expect.equals(
58 "BCD", new String.fromCharCodes("ABC".codeUnits.map((x) => x + 1)));
59 Expect.equals("BCD", new String.fromCharCodes("ABC".runes.map((x) => x + 1)));
60
61 var nonBmpCharCodes = [0, 0xD812, 0xDC34, 0x14834, 0xDC34, 0xD812];
62 var nonBmp = new String.fromCharCodes(nonBmpCharCodes);
63 Expect.equals(7, nonBmp.length);
64 Expect.equals(0, nonBmp.codeUnitAt(0));
65 Expect.equals(0xD812, nonBmp.codeUnitAt(1)); // Separated surrogate pair
66 Expect.equals(0xDC34, nonBmp.codeUnitAt(2));
67 Expect.equals(0xD812, nonBmp.codeUnitAt(3)); // Single non-BMP code point.
68 Expect.equals(0xDC34, nonBmp.codeUnitAt(4));
69 Expect.equals(0xDC34, nonBmp.codeUnitAt(5)); // Unmatched surrogate.
70 Expect.equals(0xD812, nonBmp.codeUnitAt(6)); // Unmatched surrogate.
71
72 var reversedNonBmp = new String.fromCharCodes(nonBmpCharCodes.reversed);
73 Expect.equals(7, reversedNonBmp.length);
74 Expect.equals(0, reversedNonBmp.codeUnitAt(6));
75 Expect.equals(0xD812, reversedNonBmp.codeUnitAt(5));
76 Expect.equals(0xDC34, reversedNonBmp.codeUnitAt(4));
77 Expect.equals(0xDC34, reversedNonBmp.codeUnitAt(3));
78 Expect.equals(0xD812, reversedNonBmp.codeUnitAt(2));
79 Expect.equals(0xDC34, reversedNonBmp.codeUnitAt(1));
80 Expect.equals(0xD812, reversedNonBmp.codeUnitAt(0));
81
82 Expect.equals(nonBmp, new String.fromCharCodes(nonBmp.codeUnits));
83 Expect.equals(nonBmp, new String.fromCharCodes(nonBmp.runes));
84 }
OLDNEW
« no previous file with comments | « tests/corelib/string_from_environment_test.dart ('k') | tests/corelib/string_fromcharcode_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698