private TestSuite createReserializedSuite(SortedMultisetTestSuiteBuilder<E> parentBuilder) { final TestMultisetGenerator<E> delegate = (TestMultisetGenerator<E>) parentBuilder.getSubjectGenerator(); Set<Feature<?>> features = new HashSet<>(); features.addAll(parentBuilder.getFeatures()); features.remove(SERIALIZABLE); features.remove(SERIALIZABLE_INCLUDING_VIEWS); return SortedMultisetTestSuiteBuilder.using( new ForwardingTestMultisetGenerator<E>(delegate) { @Override public SortedMultiset<E> create(Object... entries) { return SerializableTester.reserialize(((SortedMultiset<E>) super.create(entries))); } }) .named(parentBuilder.getName() + " reserialized") .withFeatures(features) .suppressing(parentBuilder.getSuppressedTests()) .createTestSuite(); }
@Override public TestSuite createTestSuite() { withFeatures(KNOWN_ORDER); TestSuite suite = super.createTestSuite(); for (TestSuite subSuite : createDerivedSuites(this)) { suite.addTest(subSuite); } return suite; }
public static <E> SortedMultisetTestSuiteBuilder<E> using(TestMultisetGenerator<E> generator) { SortedMultisetTestSuiteBuilder<E> result = new SortedMultisetTestSuiteBuilder<E>(); result.usingGenerator(generator); return result; }
List<TestSuite> createDerivedSuites(SortedMultisetTestSuiteBuilder<E> parentBuilder) { List<TestSuite> derivedSuites = Lists.newArrayList(); if (!parentBuilder.getFeatures().contains(NoRecurse.DESCENDING)) { derivedSuites.add(createDescendingSuite(parentBuilder)); } if (parentBuilder.getFeatures().contains(SERIALIZABLE)) { derivedSuites.add(createReserializedSuite(parentBuilder)); } if (!parentBuilder.getFeatures().contains(NoRecurse.SUBMULTISET)) { derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.NO_BOUND, Bound.EXCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.NO_BOUND, Bound.INCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.EXCLUSIVE, Bound.NO_BOUND)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.EXCLUSIVE, Bound.EXCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.EXCLUSIVE, Bound.INCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.INCLUSIVE, Bound.NO_BOUND)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.INCLUSIVE, Bound.EXCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.INCLUSIVE, Bound.INCLUSIVE)); } return derivedSuites; }
public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(ForwardingSortedMultisetTest.class); suite.addTest( SortedMultisetTestSuiteBuilder.using( new TestStringMultisetGenerator() { @Override protected Multiset<String> create(String[] elements) { return new StandardImplForwardingSortedMultiset<>( TreeMultiset.create(Arrays.asList(elements))); } @Override public List<String> order(List<String> insertionOrder) { return Ordering.natural().sortedCopy(insertionOrder); } }) .named("ForwardingSortedMultiset with standard impls") .withFeatures( CollectionSize.ANY, CollectionFeature.KNOWN_ORDER, CollectionFeature.GENERAL_PURPOSE, CollectionFeature.ALLOWS_NULL_QUERIES) .createTestSuite()); return suite; }
TestSuite suite = new TestSuite(); suite.addTest( SortedMultisetTestSuiteBuilder.using( new TestStringMultisetGenerator() { @Override .withFeatures( CollectionSize.ANY, CollectionFeature.KNOWN_ORDER, .createTestSuite()); suite.addTest( SortedMultisetTestSuiteBuilder.using( new TestStringMultisetGenerator() { @Override .withFeatures( CollectionSize.ANY, CollectionFeature.KNOWN_ORDER,
private TestSuite createDescendingSuite( SortedMultisetTestSuiteBuilder<E> parentBuilder) { final TestMultisetGenerator<E> delegate = (TestMultisetGenerator<E>) parentBuilder.getSubjectGenerator(); Set<Feature<?>> features = new HashSet<Feature<?>>(); features.add(NoRecurse.DESCENDING); features.addAll(parentBuilder.getFeatures()); if (!features.remove(CollectionFeature.SERIALIZABLE_INCLUDING_VIEWS)) { features.remove(CollectionFeature.SERIALIZABLE); } return SortedMultisetTestSuiteBuilder .using(new ForwardingTestMultisetGenerator<E>(delegate) { @Override public SortedMultiset<E> create(Object... entries) { return ((SortedMultiset<E>) super.create(entries)) .descendingMultiset(); } @Override public Iterable<E> order(List<E> insertionOrder) { return ImmutableList.copyOf(super.order(insertionOrder)).reverse(); } }) .named(parentBuilder.getName() + " descending") .withFeatures(features) .suppressing(parentBuilder.getSuppressedTests()) .createTestSuite(); }
@Override TestSuite createElementSetTestSuite( FeatureSpecificTestSuiteBuilder<?, ? extends OneSizeTestContainerGenerator<Collection<E>, E>> parentBuilder) { // TODO(lowasser): make a SortedElementSetGenerator return SetTestSuiteBuilder.using( new ElementSetGenerator<E>(parentBuilder.getSubjectGenerator())) .named(getName() + ".elementSet") .withFeatures(computeElementSetFeatures(parentBuilder.getFeatures())) .suppressing(parentBuilder.getSuppressedTests()) .createTestSuite(); }
List<TestSuite> createDerivedSuites(SortedMultisetTestSuiteBuilder<E> parentBuilder) { List<TestSuite> derivedSuites = Lists.newArrayList(); if (!parentBuilder.getFeatures().contains(NoRecurse.DESCENDING)) { derivedSuites.add(createDescendingSuite(parentBuilder)); } if (parentBuilder.getFeatures().contains(SERIALIZABLE)) { derivedSuites.add(createReserializedSuite(parentBuilder)); } if (!parentBuilder.getFeatures().contains(NoRecurse.SUBMULTISET)) { derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.NO_BOUND, Bound.EXCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.NO_BOUND, Bound.INCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.EXCLUSIVE, Bound.NO_BOUND)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.EXCLUSIVE, Bound.EXCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.EXCLUSIVE, Bound.INCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.INCLUSIVE, Bound.NO_BOUND)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.INCLUSIVE, Bound.EXCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.INCLUSIVE, Bound.INCLUSIVE)); } return derivedSuites; }
SortedMultisetTestSuiteBuilder.using(unmodifiableSortedMultisetGenerator()) .withFeatures( CollectionSize.ANY, CollectionFeature.KNOWN_ORDER,
final Bound to) { final TestMultisetGenerator<E> delegate = (TestMultisetGenerator<E>) parentBuilder.getSubjectGenerator(); features.addAll(parentBuilder.getFeatures()); .using(new ForwardingTestMultisetGenerator<E>(delegate) { @Override public SortedMultiset<E> create(Object... entries) {
@Override TestSuite createElementSetTestSuite( FeatureSpecificTestSuiteBuilder<?, ? extends OneSizeTestContainerGenerator<Collection<E>, E>> parentBuilder) { // TODO(lowasser): make a SortedElementSetGenerator return SetTestSuiteBuilder.using( new ElementSetGenerator<E>(parentBuilder.getSubjectGenerator())) .named(getName() + ".elementSet") .withFeatures(computeElementSetFeatures(parentBuilder.getFeatures())) .suppressing(parentBuilder.getSuppressedTests()) .createTestSuite(); }
private TestSuite createDescendingSuite(SortedMultisetTestSuiteBuilder<E> parentBuilder) { final TestMultisetGenerator<E> delegate = (TestMultisetGenerator<E>) parentBuilder.getSubjectGenerator(); Set<Feature<?>> features = new HashSet<>(); features.add(NoRecurse.DESCENDING); features.addAll(parentBuilder.getFeatures()); if (!features.remove(SERIALIZABLE_INCLUDING_VIEWS)) { features.remove(SERIALIZABLE); } return SortedMultisetTestSuiteBuilder.using( new ForwardingTestMultisetGenerator<E>(delegate) { @Override public SortedMultiset<E> create(Object... entries) { return ((SortedMultiset<E>) super.create(entries)).descendingMultiset(); } @Override public Iterable<E> order(List<E> insertionOrder) { return ImmutableList.copyOf(super.order(insertionOrder)).reverse(); } }) .named(parentBuilder.getName() + " descending") .withFeatures(features) .suppressing(parentBuilder.getSuppressedTests()) .createTestSuite(); }
List<TestSuite> createDerivedSuites( SortedMultisetTestSuiteBuilder<E> parentBuilder) { List<TestSuite> derivedSuites = Lists.newArrayList(); if (!parentBuilder.getFeatures().contains(NoRecurse.DESCENDING)) { derivedSuites.add(createDescendingSuite(parentBuilder)); } if (parentBuilder.getFeatures().contains(CollectionFeature.SERIALIZABLE)) { derivedSuites.add(createReserializedSuite(parentBuilder)); } if (!parentBuilder.getFeatures().contains(NoRecurse.SUBMULTISET)) { derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.NO_BOUND, Bound.EXCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.NO_BOUND, Bound.INCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.EXCLUSIVE, Bound.NO_BOUND)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.EXCLUSIVE, Bound.EXCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.EXCLUSIVE, Bound.INCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.INCLUSIVE, Bound.NO_BOUND)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.INCLUSIVE, Bound.EXCLUSIVE)); derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.INCLUSIVE, Bound.INCLUSIVE)); } return derivedSuites; }
public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(ForwardingSortedMultisetTest.class); suite.addTest( SortedMultisetTestSuiteBuilder.using( new TestStringMultisetGenerator() { @Override protected Multiset<String> create(String[] elements) { return new StandardImplForwardingSortedMultiset<>( TreeMultiset.create(Arrays.asList(elements))); } @Override public List<String> order(List<String> insertionOrder) { return Ordering.natural().sortedCopy(insertionOrder); } }) .named("ForwardingSortedMultiset with standard impls") .withFeatures( CollectionSize.ANY, CollectionFeature.KNOWN_ORDER, CollectionFeature.GENERAL_PURPOSE, CollectionFeature.ALLOWS_NULL_QUERIES) .createTestSuite()); return suite; }
TestSuite suite = new TestSuite(); suite.addTest(SortedMultisetTestSuiteBuilder .using(new TestStringMultisetGenerator() { @Override protected Multiset<String> create(String[] elements) { .withFeatures(CollectionSize.ANY, CollectionFeature.KNOWN_ORDER, CollectionFeature.GENERAL_PURPOSE, CollectionFeature.SERIALIZABLE, .createTestSuite()); suite.addTest(SortedMultisetTestSuiteBuilder .using(new TestStringMultisetGenerator() { @Override protected Multiset<String> create(String[] elements) { .withFeatures(CollectionSize.ANY, CollectionFeature.KNOWN_ORDER, CollectionFeature.GENERAL_PURPOSE, CollectionFeature.SERIALIZABLE,
@Override public TestSuite createTestSuite() { withFeatures(KNOWN_ORDER); TestSuite suite = super.createTestSuite(); for (TestSuite subSuite : createDerivedSuites(this)) { suite.addTest(subSuite); } return suite; }
public static <E> SortedMultisetTestSuiteBuilder<E> using(TestMultisetGenerator<E> generator) { SortedMultisetTestSuiteBuilder<E> result = new SortedMultisetTestSuiteBuilder<E>(); result.usingGenerator(generator); return result; }
@Override TestSuite createElementSetTestSuite(FeatureSpecificTestSuiteBuilder< ?, ? extends OneSizeTestContainerGenerator<Collection<E>, E>> parentBuilder) { // TODO(user): make a SortedElementSetGenerator return SetTestSuiteBuilder .using(new ElementSetGenerator<E>(parentBuilder.getSubjectGenerator())) .named(getName() + ".elementSet") .withFeatures(computeElementSetFeatures(parentBuilder.getFeatures())) .suppressing(parentBuilder.getSuppressedTests()) .createTestSuite(); }