def test_save_load_phenotypes(self): m = Manager() m.create_from_scratch() phenotypes = list(m.pop.phenotypes) m.save() m.close() m2 = Manager() m2.load() self.maxDiff=None self.assertListEqual(m2.pop.phenotypes, phenotypes) m2.close()
# phenotypes that can be shown and voted for. elif event.type == self.MONKEY_TESTING_EVENT: key = random.choice([pygame.K_y, pygame.K_n]) try: pygame.event.post(pygame.event.Event(pygame.KEYDOWN, {'key': key})) except pygame.error as e: logger.error("Monkey testing error: %s", e) pygame.time.wait(20) # let the processor chill for a bit def show_phenotype_image(self, ph): logger.debug("Showing phenotype %s.", ph) blitdata = rationalSizer(pygame.image.load(self.renderer.get_image_path(ph)), self.resolution) self.main_surface = tran_none(self.main_surface, blitdata) def show_next(self): ph = self.manager.get_next_phenotype(self.renderer.check_image_available) self.show_phenotype_image(ph) if __name__ == '__main__': manager = Manager(size=5, min_votes=5, directory=os.getcwd(), vote_history=VoteHistoryManager()) try: manager.load() except IOError: manager.create_from_scratch() renderer = ImageRenderer(os.path.join(os.getcwd(), "images")) interface = Interface(manager, renderer) interface.run(monkey_testing=MONKEY_TESTING)
total_permutations = len(sizes) * len(crossover_probabilities) * len(shared_fitness_sigmas) * \ len(mutation_rates) * len(min_votes_tests) index = 0 for size in sizes: for crossover_probability in crossover_probabilities: for shared_fitness_sigma in shared_fitness_sigmas: for mutation_rate in mutation_rates: for min_votes in min_votes_tests: improvement_results = [] for i in range(TRIES): m = Manager(size=size, crossover_probability=crossover_probability, shared_fitness_sigma=shared_fitness_sigma, mutation_rate=mutation_rate, min_votes=min_votes) m.create_from_scratch() runner = SimulationRunner(m, objective_function=get_desirability) runner.run(ITERATIONS) improvement = runner.improvement improvement_results.append(improvement) mean, variance = compensated_mean_and_variance(improvement_results) index += 1 str_list.append("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6:f}\t{7:f}".format( index, size, crossover_probability, shared_fitness_sigma, mutation_rate, min_votes, mean, variance )) print("{0:.2%} - PERMUTATION {1}/{2} COMPLETE".format(index / float( total_permutations), index, total_permutations)) print(str_list[-1]) print("== RESULTS ==")