code: 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;
      }
docs: ************************************************************************