public void testIntersectionUnionSets() {
int attempts = 10, maxVal = Integer.MAX_VALUE, size = 1000;
WritableLongSet[][] allSets = {{new LongTreeSet(), new LongOpenHashSet()},
{new LongTreeSet(), new LongOpenHashSet()}};
LongArray[] arrays = new LongArray[2];
LongArray expected, actual;
for (int attempt = 0; attempt < attempts; attempt++) {
for (WritableLongSet set0: allSets[0]) {
for (WritableLongSet set1: allSets[1]) {
WritableLongSet[] sets = {set0, set1};
for (int j = 0; j < 2; j++) {
arrays[j] = generateRandomLongArray(size, IntegersFixture.SortedStatus.SORTED_UNIQUE, maxVal);
sets[j].clear();
sets[j].addAll(arrays[j]);
}
expected = LongArray.copy(arrays[0]);
expected.retain(arrays[1]);
IntegersFixture.checkSet(toSortedIntersection(sets[0], sets[1]), expected);
IntegersFixture.checkSet(intersection(sets[0], sets[1]), expected);
expected = LongArray.copy(arrays[0]);
expected.merge(arrays[1]);
IntegersFixture.checkSet(union(sets[0], sets[1]), expected);
}
}
}
}