@Test
public void selectMinimum() {

	final Function<Genotype<IntegerGene>, Integer> ff = gt ->
		gt.chromosome().stream()
			.mapToInt(IntegerGene::intValue)
			.sum();
	Factory<Genotype<IntegerGene>> gtf =
		Genotype.of(IntegerChromosome.of(0, 100, 10));
	final ISeq<Phenotype<IntegerGene, Integer>> population =
		IntStream.range(0, 50)
			.mapToObj(i -> {
				final Genotype<IntegerGene> gt = gtf.newInstance();
				return Phenotype.of(gt, 50, gt.gene().intValue());
			})
			.collect(ISeq.toISeq());
	final StochasticUniversalSelector<IntegerGene, Integer> selector =
		new StochasticUniversalSelector<>();
	final ISeq<Phenotype<IntegerGene, Integer>> selection =
		selector.select(population, 50, Optimize.MINIMUM);
}