docs: @Override
    protected List<S> selection(List<S> population) {
      List<S> matingPopulation = new ArrayList<>(population.size());
      for (int i = 0; i < matingPoolSize; i++) {
        S solution = selectionOperator.execute(population);
        matingPopulation.add(solution);
      }
  
      return matingPopulation;
    }