def test_evaluate_population(self): protogene = ProtoGene(IntGene, 'a', min_value=0, max_value=100) protogenome = ProtoGenome([protogene]) algo = GeneticAlgorithm(protogenome, fitness_evaluator, termination_criteria=convergence_stop) algo.initialize() algo.evaluate_population() for individual in algo.population.individuals: assert individual.score == fitness_evaluator(individual)
def test_evolve_population(self): protogene = ProtoGene(IntGene, 'a', min_value=0, max_value=10) protogenome = ProtoGenome([protogene]) algo = GeneticAlgorithm(protogenome, fitness_evaluator, termination_criteria=convergence_stop) algo.initialize() algo.evaluate_population() g1 = algo.generation algo.evolve_population() g2 = algo.generation assert g1 == 0 and g2 == 1
def test_best_individual(self): protogene = ProtoGene(IntGene, 'a', min_value=0, max_value=100) protogenome = ProtoGenome([protogene]) algo = GeneticAlgorithm(protogenome, fitness_evaluator, termination_criteria=convergence_stop) algo.initialize() for i, individual in enumerate(algo.population.individuals): individual.set_value('a', i) algo.evaluate_population() bi = algo.best_individual() assert bi.score == 0
def test_should_terminate(self): protogene = ProtoGene(IntGene, 'a', min_value=0, max_value=100, value=1) protogenome = ProtoGenome([protogene], mutation_probability=1) algo = GeneticAlgorithm(protogenome, fitness_evaluator, termination_criteria=convergence_stop) algo.initialize() for individual in algo.population.individuals: individual.score = 1 for x in range(11): stats = {'min_score' : 0} algo.population_stats.append(stats) algo.generation = 10 st = algo.should_terminate() assert st == True algo.generation = 1 st = algo.should_terminate() assert st == False
def test_initialize(self): algo = GeneticAlgorithm(self.protogenome, fitness_evaluator) algo.initialize()