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

Unified Diff: tests/corelib/iterable_join_test.dart

Issue 11783009: Big merge from experimental to bleeding edge. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 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/iterable_first_test.dart ('k') | tests/corelib/iterable_last_matching_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/corelib/iterable_join_test.dart
diff --git a/tests/corelib/iterable_join_test.dart b/tests/corelib/iterable_join_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..a1df9b7439f8798ccf5a8672883cee45bd77cf6f
--- /dev/null
+++ b/tests/corelib/iterable_join_test.dart
@@ -0,0 +1,63 @@
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+class IC {
+ int count = 0;
+ String toString() => "${count++}";
+}
+
+testJoin(String expect, Iterable iterable, [String separator]) {
+ Expect.equals(expect, iterable.join(separator));
+}
+
+testCollections() {
+ testJoin("", [], ",");
+ testJoin("", [], "");
+ testJoin("", []);
+ testJoin("", new Set(), ",");
+ testJoin("", new Set(), "");
+ testJoin("", new Set());
+
+ testJoin("42", [42], ",");
+ testJoin("42", [42], "");
+ testJoin("42", [42]);
+ testJoin("42", new Set()..add(42), ",");
+ testJoin("42", new Set()..add(42), "");
+ testJoin("42", new Set()..add(42));
+
+ testJoin("a,b,c,d", ["a", "b", "c", "d"], ",");
+ testJoin("abcd", ["a", "b", "c", "d"], "");
+ testJoin("abcd", ["a", "b", "c", "d"]);
+ testJoin("null,b,c,d", [null,"b","c","d"], ",");
+ testJoin("1,2,3,4", [1, 2, 3, 4], ",");
+ var ic = new IC();
+ testJoin("0,1,2,3", [ic, ic, ic, ic], ",");
+
+ var set = new Set()..add(1)..add(2)..add(3);
+ var perm = new Set()..add("123")..add("132")..add("213")
+ ..add("231")..add("312")..add("321");
+ var setString = set.join();
+ Expect.isTrue(perm.contains(setString), "set: $setString");
+
+ void testArray(array) {
+ testJoin("1,3,5,7,9", array.where((i) => i.isOdd), ",");
+ testJoin("0,2,4,6,8,10,12,14,16,18", array.mappedBy((i) => i * 2), ",");
+ testJoin("5,6,7,8,9", array.skip(5), ",");
+ testJoin("5,6,7,8,9", array.skipWhile((i) => i < 5), ",");
+ testJoin("0,1,2,3,4", array.take(5), ",");
+ testJoin("0,1,2,3,4", array.takeWhile((i) => i < 5), ",");
+ }
+ testArray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
+ var fixedArray = new List.fixedLength(10);
+ for (int i = 0; i < 10; i++) {
+ fixedArray[i] = i;
+ }
+ testArray(fixedArray);
+ testArray(const [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
+}
+
+main() {
+ testCollections();
+ // TODO(lrn): test scalar lists.
+}
« no previous file with comments | « tests/corelib/iterable_first_test.dart ('k') | tests/corelib/iterable_last_matching_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698