protected static Map<SolverBenchmarkResult, SolverBenchmarkResult> createMergeMap(
            PlannerBenchmarkResult newPlannerBenchmarkResult, List<SingleBenchmarkResult> singleBenchmarkResultList) {
        // IdentityHashMap because different SolverBenchmarkResult instances are never merged
        Map<SolverBenchmarkResult, SolverBenchmarkResult> mergeMap
                = new IdentityHashMap<>();
        Map<String, Integer> nameCountMap = new HashMap<>();
        for (SingleBenchmarkResult singleBenchmarkResult : singleBenchmarkResultList) {
            SolverBenchmarkResult oldResult = singleBenchmarkResult.getSolverBenchmarkResult();
            if (!mergeMap.containsKey(oldResult)) {
                SolverBenchmarkResult newResult = new SolverBenchmarkResult(newPlannerBenchmarkResult);
                Integer nameCount = nameCountMap.get(oldResult.name);
                if (nameCount == null) {
                    nameCount = 1;
                } else {
                    nameCount++;
                }
                nameCountMap.put(oldResult.name, nameCount);
                newResult.subSingleCount = oldResult.subSingleCount;
                newResult.solverConfig = oldResult.solverConfig;
                newResult.scoreDefinition = oldResult.scoreDefinition;
                newResult.singleBenchmarkResultList = new ArrayList<>(
                        oldResult.singleBenchmarkResultList.size());
                mergeMap.put(oldResult, newResult);
                newPlannerBenchmarkResult.getSolverBenchmarkResultList().add(newResult);
            }
        }
        // Make name unique
        for (Map.Entry<SolverBenchmarkResult, SolverBenchmarkResult> entry : mergeMap.entrySet()) {
            SolverBenchmarkResult oldResult = entry.getKey();
            SolverBenchmarkResult newResult = entry.getValue();
            if (nameCountMap.get(oldResult.name) > 1) {
                newResult.name = oldResult.name + " (" + oldResult.getPlannerBenchmarkResult().getName() + ")";
            } else {
                newResult.name = oldResult.name;
            }
        }
        return mergeMap;
    }
protected static Map<SolverBenchmarkResult, SolverBenchmarkResult> createMergeMap(
            PlannerBenchmarkResult newPlannerBenchmarkResult, List<SingleBenchmarkResult> singleBenchmarkResultList) {
        
        Map<SolverBenchmarkResult, SolverBenchmarkResult> mergeMap
                = new IdentityHashMap<>();
        Map<String, Integer> nameCountMap = new HashMap<>();
        for (SingleBenchmarkResult singleBenchmarkResult : singleBenchmarkResultList) {
            SolverBenchmarkResult oldResult = singleBenchmarkResult.getSolverBenchmarkResult();
            if (!mergeMap.containsKey(oldResult)) {
                SolverBenchmarkResult newResult = new SolverBenchmarkResult(newPlannerBenchmarkResult);
                Integer nameCount = nameCountMap.get(oldResult.name);
                if (nameCount == null) {
                    nameCount = 1;
                } else {
                    nameCount++;
                }
                nameCountMap.put(oldResult.name, nameCount);
                newResult.subSingleCount = oldResult.subSingleCount;
                newResult.solverConfig = oldResult.solverConfig;
                newResult.scoreDefinition = oldResult.scoreDefinition;
                newResult.singleBenchmarkResultList = new ArrayList<>(
                        oldResult.singleBenchmarkResultList.size());
                mergeMap.put(oldResult, newResult);
                newPlannerBenchmarkResult.getSolverBenchmarkResultList().add(newResult);
            }
        }
        
        for (Map.Entry<SolverBenchmarkResult, SolverBenchmarkResult> entry : mergeMap.entrySet()) {
            SolverBenchmarkResult oldResult = entry.getKey();
            SolverBenchmarkResult newResult = entry.getValue();
            if (nameCountMap.get(oldResult.name) > 1) {
                newResult.name = oldResult.name + " (" + oldResult.getPlannerBenchmarkResult().getName() + ")";
            } else {
                newResult.name = oldResult.name;
            }
        }
        return mergeMap;
    }
protected static Map < SolverBenchmarkResult , SolverBenchmarkResult > createMergeMap ( PlannerBenchmarkResult newPlannerBenchmarkResult , List < SingleBenchmarkResult > singleBenchmarkResultList ) { // IdentityHashMap because different SolverBenchmarkResult instances are never merged Map < SolverBenchmarkResult , SolverBenchmarkResult > mergeMap = new IdentityHashMap <> ( ) ; Map < String , Integer > nameCountMap = new HashMap <> ( ) ; for ( SingleBenchmarkResult singleBenchmarkResult : singleBenchmarkResultList ) { SolverBenchmarkResult oldResult = singleBenchmarkResult . getSolverBenchmarkResult ( ) ; if ( ! mergeMap . containsKey ( oldResult ) ) { SolverBenchmarkResult newResult = new SolverBenchmarkResult ( newPlannerBenchmarkResult ) ; Integer nameCount = nameCountMap . get ( oldResult . name ) ; if ( nameCount == null ) { nameCount = 1 ; } else { nameCount ++ ; } nameCountMap . put ( oldResult . name , nameCount ) ; newResult . subSingleCount = oldResult . subSingleCount ; newResult . solverConfig = oldResult . solverConfig ; newResult . scoreDefinition = oldResult . scoreDefinition ; newResult . singleBenchmarkResultList = new ArrayList <> ( oldResult . singleBenchmarkResultList . size ( ) ) ; mergeMap . put ( oldResult , newResult ) ; newPlannerBenchmarkResult . getSolverBenchmarkResultList ( ) . add ( newResult ) ; } } // Make name unique for ( Map . Entry < SolverBenchmarkResult , SolverBenchmarkResult > entry : mergeMap . entrySet ( ) ) { SolverBenchmarkResult oldResult = entry . getKey ( ) ; SolverBenchmarkResult newResult = entry . getValue ( ) ; if ( nameCountMap . get ( oldResult . name ) > 1 ) { newResult . name = oldResult . name + " (" + oldResult . getPlannerBenchmarkResult ( ) . getName ( ) + ")" ; } else { newResult . name = oldResult . name ; } } return mergeMap ; }
************************************************************************
************************************************************************