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

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

Issue 838463002: Change List/Set/Map/Queue.from constructrs to accept any iterable. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 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 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library set_test; 5 library set_test;
6 6
7 7
8 import 'package:expect/expect.dart'; 8 import 'package:expect/expect.dart';
9 import "dart:collection"; 9 import "dart:collection";
10 10
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 testLength(2, set); 401 testLength(2, set);
402 Expect.isTrue(set.contains(e1)); 402 Expect.isTrue(set.contains(e1));
403 Expect.isTrue(set.contains(e2)); 403 Expect.isTrue(set.contains(e2));
404 404
405 var set2 = set.toSet(); 405 var set2 = set.toSet();
406 testLength(2, set2); 406 testLength(2, set2);
407 Expect.isTrue(set2.contains(e1)); 407 Expect.isTrue(set2.contains(e1));
408 Expect.isTrue(set2.contains(e2)); 408 Expect.isTrue(set2.contains(e2));
409 } 409 }
410 410
411 void testIntSetFrom(setFrom) {
412 List<num> numList = [2, 3, 5, 7, 11, 13];
413
414 Set<int> set1 = setFrom(numList);
415 Expect.listEquals(numList, set1.toList()..sort());
416
417 Set<num> numSet = numList.toSet();
418 Set<int> set2 = setFrom(numSet);
419 Expect.listEquals(numList, set2.toList()..sort());
420
421 Iterable<num> numIter = numList.where((x) => true);
422 Set<int> set3 = setFrom(numIter);
423 Expect.listEquals(numList, set3.toList()..sort());
424
425 Set<int> set4 = setFrom(new Iterable.generate(0));
426 Expect.isTrue(set4.isEmpty);
427 }
428
429 void testCESetFrom(setFrom) {
430 List<Object> ceList = [new CE(2), new CE(3), new CE(5),
431 new CE(7), new CE(11), new CE(13)];
432
433 Set<CE> set1 = setFrom(ceList);
434 Expect.listEquals(ceList, set1.toList()..sort());
435
436 Set<ce> ceSet = ceList.toSet();
437 Set<CE> set2 = setFrom(ceSet);
438 Expect.listEquals(ceList, set2.toList()..sort());
439
440 Iterable<ce> ceIter = ceList.where((x) => true);
441 Set<CE> set3 = setFrom(ceIter);
442 Expect.listEquals(ceList, set3.toList()..sort());
443
444 Set<CE> set4 = setFrom(new Iterable.generate(0));
445 Expect.isTrue(set4.isEmpty);
446 }
447
411 main() { 448 main() {
412 testMain(() => new HashSet()); 449 testMain(() => new HashSet());
413 testMain(() => new LinkedHashSet()); 450 testMain(() => new LinkedHashSet());
414 testMain(() => new HashSet.identity()); 451 testMain(() => new HashSet.identity());
415 testMain(() => new LinkedHashSet.identity()); 452 testMain(() => new LinkedHashSet.identity());
416 testMain(() => new HashSet(equals: identical)); 453 testMain(() => new HashSet(equals: identical));
417 testMain(() => new LinkedHashSet(equals: identical)); 454 testMain(() => new LinkedHashSet(equals: identical));
418 testMain(() => new HashSet(equals: (a, b) => a == b, 455 testMain(() => new HashSet(equals: (a, b) => a == b,
419 hashCode: (a) => -a.hashCode, 456 hashCode: (a) => -a.hashCode,
420 isValidKey: (a) => true)); 457 isValidKey: (a) => true));
(...skipping 29 matching lines...) Expand all
450 testRetainWhere(([equals, hashCode, validKey, comparator]) => 487 testRetainWhere(([equals, hashCode, validKey, comparator]) =>
451 new SplayTreeSet(comparator, validKey)); 488 new SplayTreeSet(comparator, validKey));
452 489
453 testDifferenceIntersection(([equals, hashCode, validKey, comparator]) => 490 testDifferenceIntersection(([equals, hashCode, validKey, comparator]) =>
454 new HashSet(equals: equals, hashCode: hashCode, isValidKey: validKey)); 491 new HashSet(equals: equals, hashCode: hashCode, isValidKey: validKey));
455 testDifferenceIntersection(([equals, hashCode, validKey, comparator]) => 492 testDifferenceIntersection(([equals, hashCode, validKey, comparator]) =>
456 new LinkedHashSet(equals: equals, hashCode: hashCode, 493 new LinkedHashSet(equals: equals, hashCode: hashCode,
457 isValidKey: validKey)); 494 isValidKey: validKey));
458 testDifferenceIntersection(([equals, hashCode, validKey, comparator]) => 495 testDifferenceIntersection(([equals, hashCode, validKey, comparator]) =>
459 new SplayTreeSet(comparator, validKey)); 496 new SplayTreeSet(comparator, validKey));
497
498 testIntSetFrom((x) => new Set<int>.from(x));
499 testIntSetFrom((x) => new HashSet<int>.from(x));
500 testIntSetFrom((x) => new LinkedHashSet<int>.from(x));
501 testIntSetFrom((x) => new SplayTreeSet<int>.from(x));
502
503 testCESetFrom((x) => new Set<CE>.from(x));
504 testCESetFrom((x) => new HashSet<CE>.from(x));
505 testCESetFrom((x) => new LinkedHashSet<CE>.from(x));
506 testCESetFrom((x) => new SplayTreeSet<CE>.from(x));
507
508 testCESetFrom((x) => new SplayTreeSet<CE>.from(x,
509 customCompare(20), validKey));
510 testCESetFrom((x) => new SplayTreeSet<CE>.from(x, identityCompare));
460 } 511 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698