Index: tests/corelib/splay_tree_test.dart |
diff --git a/tests/corelib/splay_tree_test.dart b/tests/corelib/splay_tree_test.dart |
index 2557b54012197fe6c6cf0693f20a04e9f78a79ec..80a1742640783f9040cc528e72bc07dd117ed490 100644 |
--- a/tests/corelib/splay_tree_test.dart |
+++ b/tests/corelib/splay_tree_test.dart |
@@ -50,6 +50,7 @@ main() { |
Expect.equals(5, tree.lastKeyBefore(6)); |
Expect.equals(7, tree.firstKeyAfter(6)); |
+ testSetFrom(); |
regressRemoveWhere(); |
regressRemoveWhere2(); |
} |
@@ -57,7 +58,7 @@ main() { |
void regressRemoveWhere() { |
// Regression test. Fix in https://codereview.chromium.org/148523006/ |
var t = new SplayTreeSet(); |
- t.addAll([1,3,5,7,2,4,6,8,0]); |
+ t.addAll([1, 3, 5, 7, 2, 4, 6, 8, 0]); |
var seen = new List<bool>.filled(9, false); |
t.removeWhere((x) { |
// Called only once per element. |
@@ -72,10 +73,23 @@ void regressRemoveWhere2() { |
// Removing all elements with removeWhere causes error. |
var t = new SplayTreeSet(); |
- t.addAll([1,2,3,4,5]); |
+ t.addAll([1, 2, 3, 4, 5]); |
t.removeWhere((_) => true); // Should not throw. |
Expect.isTrue(t.isEmpty); |
- t.addAll([1,2,3,4,5]); |
+ t.addAll([1, 2, 3, 4, 5]); |
t.retainWhere((_) => false); // Should not throw. |
Expect.isTrue(t.isEmpty); |
} |
+ |
+void testSetFrom() { |
+ var set1 = new SplayTreeSet<num>()..addAll([1, 2, 3, 4, 5]); |
+ var set2 = new SplayTreeSet<int>.from(set1); |
+ Expect.equals(5, set2.length); |
+ for (int i = 1; i <= 5; i++) { |
+ Expect.isTrue(set2.contains(i)); |
+ } |
+ |
+ set1 = new SplayTreeSet<num>()..addAll([0, 1, 2.4, 3.14, 5]); |
+ set2 = new SplayTreeSet<int>.from(set1.where((x) => x is int)); |
+ Expect.equals(3, set2.length); |
+} |