Beispiel #1
0
 def test_should_terminate(self):
     candidate = Candidate()
     candidate.fitness = Fitness(50)
     population = Population()
     population.append(candidate)
     termination_condition = TargetFitness(100)
     self.assertEqual(termination_condition.should_terminate(population),
                      False)
     candidate.fitness = Fitness(150)
     self.assertEqual(termination_condition.should_terminate(population),
                      True)
Beispiel #2
0
 def test_should_terminate_not_natural(self):
     candidate = Candidate()
     candidate.fitness = Fitness(-50, is_natural=False)
     population = Population()
     population.append(candidate)
     termination_condition = TargetFitness(-100)
     self.assertEqual(termination_condition.should_terminate(population),
                      False)
     candidate.fitness = Fitness(-150, is_natural=False)
     self.assertEqual(termination_condition.should_terminate(population),
                      True)
 def test_should_terminate(self):
     candidate = Candidate()
     candidate.fitness = Fitness(1)
     population = Population()
     population.append(candidate)
     termination_condition = Stagnation(3)
     self.assertEqual(termination_condition.should_terminate(population),
                      False)
     self.assertEqual(termination_condition.should_terminate(population),
                      False)
     self.assertEqual(termination_condition.should_terminate(population),
                      True)
     candidate.fitness = Fitness(2)
     self.assertEqual(termination_condition.should_terminate(population),
                      False)
     self.assertEqual(termination_condition.should_terminate(population),
                      False)
     self.assertEqual(termination_condition.should_terminate(population),
                      True)
Beispiel #4
0
 def test_trigger(self):
     candidate = Candidate()
     candidate.fitness = Fitness(1)
     population = Population([candidate])
     observer = ConsoleObserver()
     observer.trigger(Event(Event.INITIALIZE, {'population': population}))
     observer.trigger(
         Event(Event.EVALUATED_POPULATION, {
             'generation': 1,
             'population': population
         }))
     observer.trigger(
         Event(Event.TERMINATE, {
             'generation': 1,
             'population': population
         }))
Beispiel #5
0
 def create_candidate(self, fitness=None, is_natural=True):
     candidate = Candidate()
     candidate.fitness = Fitness(fitness, is_natural=is_natural)
     return candidate