public static junit.framework.Test suite() { TestSuite suite = new TestSuite(); suite.addTest( NavigableSetTestSuiteBuilder.using(testStringSetGenerator()) .named("UnmodifiableNavigableSetAPICompliance") .withFeatures(CollectionSize.SEVERAL, CollectionFeature.KNOWN_ORDER) .createTestSuite()); suite.addTestSuite(UnmodifiableNavigableSetTest.class); return suite; }
@GwtIncompatible("suite") private static Test testsForFilterNoNulls() { TestSuite suite = new TestSuite(); suite.addTest( SetTestSuiteBuilder.using( new TestStringSetGenerator() { @Override public Set<String> create(String[] elements) { Set<String> unfiltered = Sets.newLinkedHashSet(); unfiltered.add("yyy"); unfiltered.addAll(ImmutableList.copyOf(elements)); unfiltered.add("zzz"); return Sets.filter(unfiltered, Collections2Test.LENGTH_1); } }) .named("Sets.filter, no nulls") .withFeatures( CollectionFeature.SUPPORTS_ADD, CollectionFeature.SUPPORTS_REMOVE, CollectionFeature.KNOWN_ORDER, CollectionSize.ANY, CollectionFeature.ALLOWS_NULL_QUERIES) .createTestSuite()); suite.addTest( NavigableSetTestSuiteBuilder.using( new TestStringSetGenerator() { @Override public NavigableSet<String> create(String[] elements) { NavigableSet<String> unfiltered = Sets.newTreeSet(); unfiltered.add("yyy"); unfiltered.addAll(ImmutableList.copyOf(elements)); unfiltered.add("zzz"); return Sets.filter(unfiltered, Collections2Test.LENGTH_1); } @Override public List<String> order(List<String> insertionOrder) { return Ordering.natural().sortedCopy(insertionOrder); } }) .named("Sets.filter[NavigableSet]") .withFeatures( CollectionFeature.SUPPORTS_ADD, CollectionFeature.SUPPORTS_REMOVE, CollectionFeature.KNOWN_ORDER, CollectionSize.ANY, CollectionFeature.ALLOWS_NULL_QUERIES) .createTestSuite()); return suite; }
@GwtIncompatible("suite") public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(SetsTest.class); suite.addTest( SetTestSuiteBuilder.using( new TestStringSetGenerator() { @Override protected Set<String> create(String[] elements) { return Sets.newConcurrentHashSet(Arrays.asList(elements)); } }) .named("Sets.newConcurrentHashSet") .withFeatures(CollectionSize.ANY, SetFeature.GENERAL_PURPOSE) .createTestSuite()); suite.addTest( SetTestSuiteBuilder.using( new TestStringSetGenerator() { @Override protected Set<String> create(String[] elements) { int size = elements.length; // Remove last element, if size > 1 Set<String> set1 = (size > 1) ? Sets.newHashSet(Arrays.asList(elements).subList(0, size - 1)) : Sets.newHashSet(elements); // Remove first element, if size > 0 Set<String> set2 = (size > 0) ? Sets.newHashSet(Arrays.asList(elements).subList(1, size)) : Sets.<String>newHashSet(); return Sets.union(set1, set2); } }) .named("Sets.union") .withFeatures(CollectionSize.ANY, CollectionFeature.ALLOWS_NULL_VALUES) .createTestSuite()); suite.addTest( SetTestSuiteBuilder.using( new TestStringSetGenerator() { @Override protected Set<String> create(String[] elements) { Set<String> set1 = Sets.newHashSet(elements); set1.add(samples().e3()); Set<String> set2 = Sets.newHashSet(elements); set2.add(samples().e4()); return Sets.intersection(set1, set2); } }) .named("Sets.intersection") .withFeatures(CollectionSize.ANY, CollectionFeature.ALLOWS_NULL_VALUES) .createTestSuite()); suite.addTest( SetTestSuiteBuilder.using( new TestStringSetGenerator() { @Override protected Set<String> create(String[] elements) { Set<String> set1 = Sets.newHashSet(elements); set1.add(samples().e3()); Set<String> set2 = Sets.newHashSet(samples().e3()); return Sets.difference(set1, set2); } }) .named("Sets.difference") .withFeatures(CollectionSize.ANY, CollectionFeature.ALLOWS_NULL_VALUES) .createTestSuite()); suite.addTest( SetTestSuiteBuilder.using( new TestEnumSetGenerator() { @Override protected Set<AnEnum> create(AnEnum[] elements) { AnEnum[] otherElements = new AnEnum[elements.length - 1]; System.arraycopy(elements, 1, otherElements, 0, otherElements.length); return Sets.immutableEnumSet(elements[0], otherElements); } }) .named("Sets.immutableEnumSet") .withFeatures( CollectionSize.ONE, CollectionSize.SEVERAL, CollectionFeature.ALLOWS_NULL_QUERIES) .createTestSuite()); suite.addTest( NavigableSetTestSuiteBuilder.using( new TestStringSetGenerator() { @Override protected Set<String> create(String[] elements) { SafeTreeSet<String> set = new SafeTreeSet<String>(Arrays.asList(elements)); return Sets.unmodifiableNavigableSet(set); } @Override public List<String> order(List<String> insertionOrder) { return Ordering.natural().sortedCopy(insertionOrder); } }) .named("Sets.unmodifiableNavigableSet[TreeSet]") .withFeatures( CollectionSize.ANY, CollectionFeature.KNOWN_ORDER, CollectionFeature.SERIALIZABLE) .createTestSuite()); suite.addTest(testsForFilter()); suite.addTest(testsForFilterNoNulls()); suite.addTest(testsForFilterFiltered()); return suite; }