@Test
public void worstIndividual() {

	final int size = 20;
	final MSeq<Phenotype<DoubleGene, Integer>> population = MSeq.ofLength(size);
	for (int i = 0; i < size; ++i) {
		final DoubleGene gene = DoubleGene.of(i, 0, size + 10);
		final DoubleChromosome ch = DoubleChromosome.of(gene);
		final Genotype<DoubleGene> gt = Genotype.of(ch);
		final Phenotype<DoubleGene, Integer> pt = Phenotype.of(
			gt, 1, gt.gene().intValue()
		);
		population.set(i, pt);
	}
	final TruncationSelector<DoubleGene, Integer> selector =
		new TruncationSelector<>(5);
	final ISeq<Phenotype<DoubleGene, Integer>> selected =
		selector.select(population.toISeq(), 10, Optimize.MINIMUM);
	for (Phenotype<DoubleGene, Integer> pt : selected) {
		Assert.assertTrue(pt.fitness() < 5);
	}
}