Index: tests/corelib/set_test.dart |
diff --git a/tests/corelib/set_test.dart b/tests/corelib/set_test.dart |
index 8867126361aff28ddd8a3d03943dd055a78fc299..204bf7d5ff4b9b83b71384a6e72008ae3179ad34 100644 |
--- a/tests/corelib/set_test.dart |
+++ b/tests/corelib/set_test.dart |
@@ -408,6 +408,43 @@ void testIdentity(Set create()) { |
Expect.isTrue(set2.contains(e2)); |
} |
+void testIntSetFrom(setFrom) { |
+ List<num> numList = [2, 3, 5, 7, 11, 13]; |
+ |
+ Set<int> set1 = setFrom(numList); |
+ Expect.listEquals(numList, set1.toList()..sort()); |
+ |
+ Set<num> numSet = numList.toSet(); |
+ Set<int> set2 = setFrom(numSet); |
+ Expect.listEquals(numList, set2.toList()..sort()); |
+ |
+ Iterable<num> numIter = numList.where((x) => true); |
+ Set<int> set3 = setFrom(numIter); |
+ Expect.listEquals(numList, set3.toList()..sort()); |
+ |
+ Set<int> set4 = setFrom(new Iterable.generate(0)); |
+ Expect.isTrue(set4.isEmpty); |
+} |
+ |
+void testCESetFrom(setFrom) { |
+ List<Object> ceList = [new CE(2), new CE(3), new CE(5), |
+ new CE(7), new CE(11), new CE(13)]; |
+ |
+ Set<CE> set1 = setFrom(ceList); |
+ Expect.listEquals(ceList, set1.toList()..sort()); |
+ |
+ Set<ce> ceSet = ceList.toSet(); |
+ Set<CE> set2 = setFrom(ceSet); |
+ Expect.listEquals(ceList, set2.toList()..sort()); |
+ |
+ Iterable<ce> ceIter = ceList.where((x) => true); |
+ Set<CE> set3 = setFrom(ceIter); |
+ Expect.listEquals(ceList, set3.toList()..sort()); |
+ |
+ Set<CE> set4 = setFrom(new Iterable.generate(0)); |
+ Expect.isTrue(set4.isEmpty); |
+} |
+ |
main() { |
testMain(() => new HashSet()); |
testMain(() => new LinkedHashSet()); |
@@ -457,4 +494,18 @@ main() { |
isValidKey: validKey)); |
testDifferenceIntersection(([equals, hashCode, validKey, comparator]) => |
new SplayTreeSet(comparator, validKey)); |
+ |
+ testIntSetFrom((x) => new Set<int>.from(x)); |
+ testIntSetFrom((x) => new HashSet<int>.from(x)); |
+ testIntSetFrom((x) => new LinkedHashSet<int>.from(x)); |
+ testIntSetFrom((x) => new SplayTreeSet<int>.from(x)); |
+ |
+ testCESetFrom((x) => new Set<CE>.from(x)); |
+ testCESetFrom((x) => new HashSet<CE>.from(x)); |
+ testCESetFrom((x) => new LinkedHashSet<CE>.from(x)); |
+ testCESetFrom((x) => new SplayTreeSet<CE>.from(x)); |
+ |
+ testCESetFrom((x) => new SplayTreeSet<CE>.from(x, |
+ customCompare(20), validKey)); |
+ testCESetFrom((x) => new SplayTreeSet<CE>.from(x, identityCompare)); |
} |