def test_zero_fitness_get_waxed(self): count = [-1] def g(): count[0] = count[0] + 1 # Nasty trick uh? try without the list return [0, 0, 1, 0, 0][count[0]] def fitness(state): return state self.problem.generate_random_state = g self.problem.value = fitness node = genetic(self.problem, iterations_limit=1, mutation_chance=0, population_size=5) self.assertEqual(node.state, 2)
def test_count_generations(self): node = genetic(self.problem, iterations_limit=10, mutation_chance=0, population_size=5) self.assertEqual(node.state, 14) # initial is 4, plus 10 generations
def test_calls_mutation(self): node = genetic(self.problem, iterations_limit=1, mutation_chance=1, population_size=5) self.assertEqual(node.state, 20)
def test_solution_is_node(self): node = genetic(self.problem, iterations_limit=1, mutation_chance=0, population_size=1) self.assertIsInstance(node, SearchNode)