private static List<MetricSet> findMissingMetricSets(List<MetricSet> requiredMetricSetList, Map<String, MetricSet> knownMetricSetMap) { return requiredMetricSetList .stream() .filter(requiredMetricSet -> !knownMetricSetMap.containsKey(requiredMetricSet.getMetricSetKey())) .collect(Collectors.toList()); }
public List<MetricSetPair> mixAll(List<MetricSet> controlMetricSetList, List<MetricSet> experimentMetricSetList) { if (controlMetricSetList == null) { controlMetricSetList = new ArrayList<>(); } if (experimentMetricSetList == null) { experimentMetricSetList = new ArrayList<>(); } // Build 'metric set key' -> 'metric set' maps of control and experiment so we can efficiently identify missing metric sets. Map<String, MetricSet> controlMetricSetMap = buildMetricSetMap(controlMetricSetList); Map<String, MetricSet> experimentMetricSetMap = buildMetricSetMap(experimentMetricSetList); // Identify metric sets missing from each map. List<MetricSet> missingFromExperiment = findMissingMetricSets(controlMetricSetList, experimentMetricSetMap); List<MetricSet> missingFromControl = findMissingMetricSets(experimentMetricSetList, controlMetricSetMap); // Add placeholder metric sets for each one that is missing. addMissingMetricSets(controlMetricSetList, missingFromControl); addMissingMetricSets(experimentMetricSetList, missingFromExperiment); // Sort each metric set list so that we can pair them. controlMetricSetList.sort(Comparator.comparing(metricSet -> metricSet.getMetricSetKey())); experimentMetricSetList.sort(Comparator.comparing(metricSet -> metricSet.getMetricSetKey())); // Produce the list of metric set pairs from the pair of metric set lists. List<MetricSetPair> ret = new ArrayList<>(); for (int i = 0; i < controlMetricSetList.size(); i++) { ret.add(mixOne(controlMetricSetList.get(i), experimentMetricSetList.get(i))); } return ret; }
private static List<MetricSet> findMissingMetricSets(List<MetricSet> requiredMetricSetList, Map<String, MetricSet> knownMetricSetMap) { return requiredMetricSetList .stream() .filter(requiredMetricSet -> !knownMetricSetMap.containsKey(requiredMetricSet.getMetricSetKey())) .collect(Collectors.toList()); }
public List<MetricSetPair> mixAll(List<MetricSet> controlMetricSetList, List<MetricSet> experimentMetricSetList) { if (controlMetricSetList == null) { controlMetricSetList = new ArrayList<>(); } if (experimentMetricSetList == null) { experimentMetricSetList = new ArrayList<>(); } // Build 'metric set key' -> 'metric set' maps of control and experiment so we can efficiently identify missing metric sets. Map<String, MetricSet> controlMetricSetMap = buildMetricSetMap(controlMetricSetList); Map<String, MetricSet> experimentMetricSetMap = buildMetricSetMap(experimentMetricSetList); // Identify metric sets missing from each map. List<MetricSet> missingFromExperiment = findMissingMetricSets(controlMetricSetList, experimentMetricSetMap); List<MetricSet> missingFromControl = findMissingMetricSets(experimentMetricSetList, controlMetricSetMap); // Add placeholder metric sets for each one that is missing. addMissingMetricSets(controlMetricSetList, missingFromControl); addMissingMetricSets(experimentMetricSetList, missingFromExperiment); // Sort each metric set list so that we can pair them. controlMetricSetList.sort(Comparator.comparing(metricSet -> metricSet.getMetricSetKey())); experimentMetricSetList.sort(Comparator.comparing(metricSet -> metricSet.getMetricSetKey())); // Produce the list of metric set pairs from the pair of metric set lists. List<MetricSetPair> ret = new ArrayList<>(); for (int i = 0; i < controlMetricSetList.size(); i++) { ret.add(mixOne(controlMetricSetList.get(i), experimentMetricSetList.get(i))); } return ret; }