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

Unified Diff: tests/corelib_2/list_unmodifiable_test.dart

Issue 2995703002: fix list_unmodifiable_test (Closed)
Patch Set: Created 3 years, 4 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 | « tests/corelib_2/corelib_2.status ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/corelib_2/list_unmodifiable_test.dart
diff --git a/tests/corelib_2/list_unmodifiable_test.dart b/tests/corelib_2/list_unmodifiable_test.dart
index e6702fc48366d9282bf60715277566b34f91fa6c..a57dd34962db7a7b01f439c4202b9685b7e77d8a 100644
--- a/tests/corelib_2/list_unmodifiable_test.dart
+++ b/tests/corelib_2/list_unmodifiable_test.dart
@@ -139,23 +139,25 @@ class Test<E> {
list.fillRange(0, 1, null);
});
- success(opName, op(list)) {
- var expect;
- try {
- expect = op(elements);
- } catch (e) {
- try {
- op(list);
- } catch (e2) {
- Expect.equals(
- e.runtimeType,
- e2.runtimeType,
- "$name :: $opName threw different exceptions: "
- "${e.runtimeType} vs ${e2.runtimeType}");
- return;
- }
- Expect.fail("$name-$opName didn't throw, expected: $e");
+ success(opName, op(List list), [bool throws = false]) {
+ if (throws) {
+ var e1, e2;
+ Expect.throws(() => op(elements), (e) {
+ e1 = e;
+ return true;
+ }, '$name :: $opName should throw for $elements');
+ Expect.throws(() => op(list), (e) {
+ e2 = e;
+ return true;
+ }, '$name :: $opName should throw for $list');
+ Expect.equals(
+ e1.runtimeType,
+ e2.runtimeType,
+ "$name :: $opName threw different errors for $elements and $list: "
+ "${e1.runtimeType} vs ${e2.runtimeType}");
+ return;
}
+ var expect = op(elements);
var actual = op(list);
checkElements();
if (expect is List) {
@@ -171,10 +173,10 @@ class Test<E> {
success("indexOf", (l) => l.indexOf(null));
success("lastIndexOf", (l) => l.lastIndexOf(null));
success("contains", (l) => l.contains(2));
- success("elementAt", (l) => l.elementAt[1]);
Jennifer Messerly 2017/08/09 18:47:25 note the square brackets ... oops!
+ success("elementAt", (l) => l.elementAt(1), list.length < 2);
success("reversed", (l) => l.reversed);
- success("sublist0-1", (l) => l.sublist(0, 1));
- success("getRange0-1", (l) => l.getRange(0, 1));
+ success("sublist0-1", (l) => l.sublist(0, 1), list.isEmpty);
+ success("getRange0-1", (l) => l.getRange(0, 1), list.isEmpty);
success("asMap-keys", (l) => l.asMap().keys);
success("asMap-values", (l) => l.asMap().values);
success("where", (l) => l.where((x) => true));
@@ -184,17 +186,22 @@ class Test<E> {
success("take", (l) => l.take(1));
success("skipWhile", (l) => l.skipWhile((x) => false));
success("takeWhile", (l) => l.takeWhile((x) => true));
- success("first", (l) => l.first);
- success("last", (l) => l.last);
- success("single", (l) => l.single);
- success("firstWhere", (l) => l.firstWhere((x) => true));
- success("lastWhere", (l) => l.lastWhere((x) => true));
- success("singleWhere", (l) => l.singleWhere((x) => true));
+ success("first", (l) => l.first, list.isEmpty);
+ success("last", (l) => l.last, list.isEmpty);
+ success("single", (l) => l.single, list.length != 1);
+ success("firstWhere", (l) => l.firstWhere((x) => true), list.isEmpty);
+ success("lastWhere", (l) => l.lastWhere((x) => true), list.isEmpty);
+ success("singleWhere", (l) => l.singleWhere((x) => true), list.length != 1);
success("isEmpty", (l) => l.isEmpty);
success("isNotEmpty", (l) => l.isNotEmpty);
success("join", (l) => l.join("/"));
success("fold", (l) => l.fold("--", (a, b) => "$a/$b"));
- success("reduce", (l) => l.reduce((a, b) => a + b));
+ if (elements is List<num> && list is List<num>) {
+ success(
+ "reduce",
+ (l) => (l as List<num>).reduce((a, b) => (a + b).floor()),
+ list.isEmpty);
+ }
success("every", (l) => l.every((x) => x == 0));
success("any", (l) => l.any((x) => x == 2));
success("toList", (l) => l.toList());
@@ -209,7 +216,8 @@ class Test<E> {
Expect.isFalse(it.moveNext());
if (elements is List<int> && list is List<int>) {
- success("String.fromCharCodes", (l) => new String.fromCharCodes(l));
+ success("String.fromCharCodes",
+ (l) => new String.fromCharCodes(l as List<int>));
}
}
}
« no previous file with comments | « tests/corelib_2/corelib_2.status ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698