@Override public Collection<MutationDetails> intercept( Collection<MutationDetails> mutations, Mutater m) { final Map<Location,Collection<MutationDetails>> buckets = FCollection.bucket(mutations, mutationToLocation()); final List<MutationDetails> willTimeout = new ArrayList<>(); for (final Entry<Location, Collection<MutationDetails>> each : buckets.entrySet() ) { willTimeout.addAll(findTimeoutMutants(each.getKey(), each.getValue(), m)); } mutations.removeAll(willTimeout); return mutations; }
@Override public List<List<MutationDetails>> groupMutations( final Collection<ClassName> codeClasses, final Collection<MutationDetails> mutations) { final Map<ClassName, Collection<MutationDetails>> bucketed = FCollection .bucket(mutations, byClass()); final List<List<MutationDetails>> chunked = new ArrayList<>(); for (final Collection<MutationDetails> each : bucketed.values()) { shrinkToMaximumUnitSize(chunked, each); } return chunked; }
@Override public Collection<MutationDetails> intercept( Collection<MutationDetails> mutations, Mutater m) { final List<MutationDetails> combined = new ArrayList<>( mutations.size()); final Map<LineMutatorPair, Collection<MutationDetails>> mutatorLinebuckets = bucket( mutations, toLineMutatorPair()); for (final Entry<LineMutatorPair, Collection<MutationDetails>> each : mutatorLinebuckets .entrySet()) { if (each.getValue().size() > 1) { checkForInlinedCode(combined, each); } else { combined.addAll(each.getValue()); } } /** FIXME tests rely on order of returned mutants **/ Collections.sort(combined, compareLineNumbers()); return combined; }
public FeatureSelector(List<FeatureSetting> features, Collection<T> filters) { this.settings = FCollection.bucket(features, byFeature()); this.active = selectFeatures(features, filters); }
public CoverageData(final CodeSource code, final LineMap lm, Map<BlockLocation, Set<TestInfo>> blockCoverage) { this.blockCoverage = blockCoverage; this.code = code; this.lm = lm; this.classesForFile = FCollection.bucket(this.code.getCode(), keyFromClassInfo()); }
public List<T> selectFeatures(List<FeatureSetting> features, Collection<T> filters) { final List<T> factories = new ArrayList<>(filters); final Map<String, Collection<T>> featureMap = FCollection.bucket(factories, byFeatureName()); final List<T> active = FCollection.filter(factories, isOnByDefault()); for ( final FeatureSetting each : features ) { final Collection<T> providers = featureMap.get(each.feature()); if ((providers == null) || providers.isEmpty()) { throw new IllegalArgumentException("Pitest and its installed plugins do not recognise the feature " + each.feature()); } if (each.addsFeature()) { active.addAll(providers); } if (each.removesFeature()) { active.removeAll(providers); } } return active; }
@Test public void shouldSplitIntoMultipleBuckets() { this.is = Arrays.asList(1, 2, 3); final Map<Integer, Collection<Integer>> actual = FCollection.bucket( this.is, Prelude.id(Integer.class)); final Map<Integer, Collection<Integer>> expected = new HashMap<>(); expected.put(1, Arrays.asList(1)); expected.put(2, Arrays.asList(2)); expected.put(3, Arrays.asList(3)); assertEquals(expected, actual); }
@Test public void shouldSplitIntoSingleBucketWhenAllItemsMeetsCriteria() { this.is = Arrays.asList(1, 2, 3); final Map<Integer, Collection<Integer>> actual = FCollection.bucket( this.is, fortyTwo()); final Map<Integer, Collection<Integer>> expected = new HashMap<>(); expected.put(42, Arrays.asList(1, 2, 3)); assertEquals(expected, actual); }
public FeatureSelector(List<FeatureSetting> features, Collection<T> filters) { this.settings = FCollection.bucket(features, byFeature()); this.active = selectFeatures(features, filters); }
public List<T> selectFeatures(List<FeatureSetting> features, Collection<T> filters) { final List<T> factories = new ArrayList<>(filters); final Map<String, Collection<T>> featureMap = FCollection.bucket(factories, byFeatureName()); final List<T> active = FCollection.filter(factories, isOnByDefault()); for ( final FeatureSetting each : features ) { final Collection<T> providers = featureMap.get(each.feature()); if ((providers == null) || providers.isEmpty()) { throw new IllegalArgumentException("Pitest and its installed plugins do not recognise the feature " + each.feature()); } if (each.addsFeature()) { active.addAll(providers); } if (each.removesFeature()) { active.removeAll(providers); } } return active; }