private static Map<GraphSet, Map<Algorithm, BenchmarkResult>> constructGraphAlgorithmResults(
      BenchmarkSuiteResult benchmarkSuiteResult) {
    // Construct a map of maps to hold the results
    Map<GraphSet, Map<Algorithm, BenchmarkResult>> graphAlgorithmResults = new HashMap<>();
    for (GraphSet graph : benchmarkSuiteResult.getBenchmarkSuite().getGraphSets()) {
      graphAlgorithmResults.put(graph, new HashMap<Algorithm, BenchmarkResult>());
    }

    // Insert the results from the benchmark suite
    for (BenchmarkResult benchmarkResult : benchmarkSuiteResult.getBenchmarkResults()) {
      graphAlgorithmResults
          .get(benchmarkResult.getBenchmark().getGraph().getGraphSet())
          .put(benchmarkResult.getBenchmark().getAlgorithm(), benchmarkResult);
    }

    // Make the map unmodifiable
    for (GraphSet graph : benchmarkSuiteResult.getBenchmarkSuite().getGraphSets()) {
      graphAlgorithmResults.put(
          graph, Collections.unmodifiableMap(graphAlgorithmResults.get(graph)));
    }
    return Collections.unmodifiableMap(graphAlgorithmResults);
  }
 private static Collection<Algorithm> constructOrderedAlgorithmCollection(
     BenchmarkSuiteResult benchmarkSuiteResult) {
   List<Algorithm> algorithmCollection =
       new ArrayList<>(benchmarkSuiteResult.getBenchmarkSuite().getAlgorithms());
   Collections.sort(
       algorithmCollection,
       new Comparator<Algorithm>() {
         @Override
         public int compare(Algorithm o1, Algorithm o2) {
           return o1.getAcronym().compareToIgnoreCase(o2.getAcronym());
         }
       });
   return Collections.unmodifiableList(algorithmCollection);
 }
 private static Collection<GraphSet> constructOrderedGraphSetCollection(
     BenchmarkSuiteResult benchmarkSuiteResult) {
   List<GraphSet> graphSetCollection =
       new ArrayList<>(benchmarkSuiteResult.getBenchmarkSuite().getGraphSets());
   Collections.sort(
       graphSetCollection,
       new Comparator<GraphSet>() {
         @Override
         public int compare(GraphSet o1, GraphSet o2) {
           return o1.getName().compareTo(o2.getName());
         }
       });
   return Collections.unmodifiableList(graphSetCollection);
 }
 /** @return information about the system used to run the benchmark suite on */
 public SystemDetails getSystemDetails() {
   return benchmarkSuiteResult.getSystemDetails();
 }
 /** @return platform-specific configuration details */
 public NestedConfiguration getPlatformConfiguration() {
   return benchmarkSuiteResult.getPlatformConfiguration();
 }