@DataProvider(name = "expectedDistribution")
  public Object[][] expectedDistribution() {
    final String resource = "/org/jenetics/selector/distribution/TournamentSelector";

    return Arrays.stream(Optimize.values())
        .flatMap(
            opt -> {
              final TestData data = TestData.of(resource, opt.toString());
              final double[][] csv = data.stream().map(TestData::toDouble).toArray(double[][]::new);

              final int[] sizes = TestData.toInt(csv[0]);

              return IntStream.range(0, sizes.length)
                  .mapToObj(
                      i ->
                          new Object[] {
                            sizes[i],
                            Named.of(format("distribution[%d]", sizes[i]), expected(csv, i)),
                            opt
                          });
            })
        .toArray(Object[][]::new);
  }