public static void main()

in src/main/java/org/apache/accumulo/testing/performance/impl/Csv.java [82:129]


  public static void main(String[] args) throws Exception {
    Map<RowId,Map<String,Double>> rows = new TreeMap<>();

    for (String file : args) {
      Collection<ContextualReport> reports = Compare.readReports(file);

      Instant minStart = reports.stream().map(cr -> cr.startTime).map(Instant::parse)
          .min(Instant::compareTo).get();

      String version =
          Iterables.getOnlyElement(reports.stream().map(cr -> cr.accumuloVersion).collect(toSet()));

      Map<String,Double> row = new HashMap<>();

      for (ContextualReport report : reports) {

        String id = report.id != null ? report.id
            : report.testClass.substring(report.testClass.lastIndexOf('.') + 1);

        for (Result result : report.results) {
          if (result.purpose == Result.Purpose.COMPARISON) {
            row.put(id + "." + result.id, result.data.doubleValue());
          }
        }
      }

      rows.put(new RowId(minStart, version), row);
    }

    List<String> allCols = rows.values().stream().flatMap(row -> row.keySet().stream()).distinct()
        .sorted().collect(toList());

    // print header
    print(
        Stream.concat(Stream.of("Start Time", "Version"), allCols.stream()).collect(joining(",")));

    rows.forEach((id, row) -> {
      StringJoiner joiner = new StringJoiner(",");
      joiner.add(id.startTime.toString());
      joiner.add(id.accumuloVersion);
      for (String col : allCols) {
        joiner.add(row.getOrDefault(col, Double.valueOf(0)).toString());
      }

      print(joiner.toString());
    });

  }