Ejemplo n.º 1
0
 def test_is_stratified(self, shuffled_chromosomes, n_groups):
     population = Population(shuffled_chromosomes,
                             eval_function=lambda x: x).evaluate()
     islands = population.group(group_stratified, n_groups=n_groups)
     # All islands should have the same total fitness
     assert len(
         set(
             sum(map(lambda i: i.fitness, island.individuals))
             for island in islands)) == 1
Ejemplo n.º 2
0
 def test_is_nearly_stratified(self, shuffled_chromosomes, n_groups):
     population = Population(shuffled_chromosomes,
                             eval_function=lambda x: x).evaluate()
     islands = population.group(group_stratified, n_groups=n_groups)
     # All islands should have roughly the same total fitness
     sum_fitnesses = [
         sum(map(lambda i: i.fitness, island.individuals))
         for island in islands
     ]
     assert max(sum_fitnesses) - min(sum_fitnesses) < n_groups * len(
         islands[0])