blob: 1d64afd2948160096c37846659440b2519718496 [file] [log] [blame]
// Copyright (c) 2011, 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.
/**
* @assertion abstract Set<E> intersection(Set<Object> other)
* Returns a new set which is the intersection between this set and other.
* the given collection.
* @description Checks that the returned intersection is correct as long as the specified
* set is not null. Element types tested include int, null and String.
* @author kaigorodov
*/
library intersection_A01_t01;
import "set.lib.dart";
import "../../../Utils/expect.dart";
void check(Set create([Iterable content]), List expected, List l1, List l2) {
Expect.setEquals(create(expected), create(l1).intersection(create(l2)));
}
test(Set create([Iterable content])) {
check(create, [2], [1, 2], [2, 3]);
check(create, [1, 2], [1, 2, 3, 4, 5, 1, 1, 1, 2, 2, 2], [1, 1, 2, 2]);
//Intersection with an empty set
check(create, [], [], [1, 2, 3, 4, 5]);
check(create, [], [1, 2, 3, 4], []);
check(create, [], [], []);
//One set fully contains another
check(create, [1, 2], [1, 2, 3, 4, 5, 6], [1, 2]);
check(create, [1, 2], [1, 2], [1, 2, 3, 4, 5, 6]);
//Intersection with itself
check(create, [1], [1], [1]);
check(create, [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]);
//Not intersecting sets
check(create, [], ["foo"], ["fOo", "bar"]);
check(create, [], [1, 2, 3, 4, 5], [-1, -2, -3, -4, -5]);
}
main() {
test(create);
}