Beispiel #1
0
    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)
Beispiel #2
0
 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
Beispiel #3
0
 def test_calls_mutation(self):
     node = genetic(self.problem,
                    iterations_limit=1,
                    mutation_chance=1,
                    population_size=5)
     self.assertEqual(node.state, 20)
Beispiel #4
0
 def test_solution_is_node(self):
     node = genetic(self.problem,
                    iterations_limit=1,
                    mutation_chance=0,
                    population_size=1)
     self.assertIsInstance(node, SearchNode)
Beispiel #5
0
 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
Beispiel #6
0
 def test_calls_mutation(self):
     node = genetic(self.problem, iterations_limit=1, mutation_chance=1, population_size=5)
     self.assertEqual(node.state, 20)
Beispiel #7
0
 def test_solution_is_node(self):
     node = genetic(self.problem, iterations_limit=1, mutation_chance=0, population_size=1)
     self.assertIsInstance(node, SearchNode)