def test_invert(self): fitness = FitnessList(MAX) fit = Fitness(fitness) self.assertAlmostEqual(0.25, fit._invert(4.0)) self.assertAlmostEqual(-0.25, fit._invert(-4.0)) self.assertAlmostEqual(2.0, fit._invert(0.5))
def test_invert(self): fitness = FitnessList(MAX) fit = Fitness(fitness) self.assertAlmostEqual(.25, fit._invert(4.0)) self.assertAlmostEqual(-.25, fit._invert(-4.0)) self.assertAlmostEqual(2.0, fit._invert(0.5))
def test_make_prob_list(self): prob_list = Fitness._make_prob_list([.5, .25, 2.5]) self.assertAlmostEqual(1.0, sum(prob_list)) self.assertAlmostEqual(0.153846153846, prob_list[0]) self.assertAlmostEqual(0.0769230769231, prob_list[1]) self.assertAlmostEqual(0.769230769231, prob_list[2])
def test_make_prob_list(self): prob_list = Fitness._make_prob_list([0.5, 0.25, 2.5]) self.assertAlmostEqual(1.0, sum(prob_list)) self.assertAlmostEqual(0.153846153846, prob_list[0]) self.assertAlmostEqual(0.0769230769231, prob_list[1]) self.assertAlmostEqual(0.769230769231, prob_list[2])
def test_classinit_(self): """ Does it set the fitness_list? """ fitness = FitnessList(MAX) fit = Fitness(fitness) self.assertEqual(fit._fitness_list, fitness)
def test_set_fitness_list(self): # Do MAX fitness = FitnessList(MAX) fit = Fitness(fitness) fit._fitness_list = None self.assertEqual(fit._fitness_list, None) fit.set_fitness_list(fitness) self.assertEqual(fit._fitness_list, fitness) # Do CENTER selection_list converted to distance from target fitness = FitnessList(CENTER, .15) fitness.append([.5, 0]) fitness.append([.25, 1]) fitness.append([2.5, 2]) fit = Fitness(fitness) fit._fitness_list = None self.assertEqual(fit._fitness_list, None) fit.set_fitness_list(fitness) self.assertEqual(fit._selection_list, [.35, .1, 2.35])
def test_set_fitness_selections(self): """ This function tests setting a fitness selection class. """ self.ges.set_fitness_selections(Fitness(FitnessList('center'))) self.assertEqual(1, len(self.ges._fitness_selections)) self.ges.set_fitness_selections(Fitness(FitnessList('center'))) self.assertEqual(2, len(self.ges._fitness_selections)) self.ges._fitness_selections = [] self.ges.set_fitness_selections(Fitness(FitnessList('center')), Fitness(FitnessList('center'))) self.assertEqual(2, len(self.ges._fitness_selections)) self.ges._fitness_selections = [] self.assertRaises(ValueError, self.ges.set_fitness_selections, "wrong")
def test_set_fitness_list(self): # Do MAX fitness = FitnessList(MAX) fit = Fitness(fitness) fit._fitness_list = None self.assertEqual(fit._fitness_list, None) fit.set_fitness_list(fitness) self.assertEqual(fit._fitness_list, fitness) # Do CENTER selection_list converted to distance from target fitness = FitnessList(CENTER, 0.15) fitness.append([0.5, 0]) fitness.append([0.25, 1]) fitness.append([2.5, 2]) fit = Fitness(fitness) fit._fitness_list = None self.assertEqual(fit._fitness_list, None) fit.set_fitness_list(fitness) self.assertEqual(fit._selection_list, [0.35, 0.1, 2.35])
def test_scale_list(self): # # fitness type MAX, test select type MAX # fitness = FitnessList(MAX) fitness.extend([[.5, 0], [.25, 1], [2.5, 2]]) fit = Fitness(fitness) fit.set_selection_type(MAX) fit._scale_list() # not inverted self.assertAlmostEqual(.5, fit._selection_list[0]) self.assertAlmostEqual(.25, fit._selection_list[1]) self.assertAlmostEqual(2.5, fit._selection_list[2]) # # fitness type MAX, test select type MIN # fit.set_fitness_list(fitness) fit.set_selection_type(MIN) fit._scale_list() # inverted self.assertAlmostEqual(2.0, fit._selection_list[0]) self.assertAlmostEqual(4.0, fit._selection_list[1]) self.assertAlmostEqual(0.4, fit._selection_list[2]) # # fitness type MIN, test select type MAX # fitness.set_fitness_type(MIN) fit.set_fitness_list(fitness) fit.set_selection_type(MAX) fit._scale_list() # inverted self.assertAlmostEqual(2.0, fit._selection_list[0]) self.assertAlmostEqual(4.0, fit._selection_list[1]) self.assertAlmostEqual(0.4, fit._selection_list[2]) # # fitness type MIN, test select type MIN # fit.set_fitness_list(fitness) fit.set_selection_type(MIN) fit._scale_list() # not inverted self.assertAlmostEqual(.5, fit._selection_list[0]) self.assertAlmostEqual(.25, fit._selection_list[1]) self.assertAlmostEqual(2.5, fit._selection_list[2]) # # fitness type CENTER, test select type MAX # fitness.set_fitness_type(CENTER) fitness.set_target_value(.75) fit.set_fitness_list(fitness) fit.set_selection_type(MAX) fit._scale_list() # inverted self.assertAlmostEqual(4.0, fit._selection_list[0]) self.assertAlmostEqual(2.0, fit._selection_list[1]) self.assertAlmostEqual(0.5714285714, fit._selection_list[2]) # # fitness type CENTER, test select type MIN # fit.set_fitness_list(fitness) fit.set_selection_type(MIN) fit._scale_list() # not inverted self.assertAlmostEqual(.25, fit._selection_list[0]) self.assertAlmostEqual(.5, fit._selection_list[1]) self.assertAlmostEqual(1.75, fit._selection_list[2])
def test_scale_list(self): # # fitness type MAX, test select type MAX # fitness = FitnessList(MAX) fitness.extend([[0.5, 0], [0.25, 1], [2.5, 2]]) fit = Fitness(fitness) fit.set_selection_type(MAX) fit._scale_list() # not inverted self.assertAlmostEqual(0.5, fit._selection_list[0]) self.assertAlmostEqual(0.25, fit._selection_list[1]) self.assertAlmostEqual(2.5, fit._selection_list[2]) # # fitness type MAX, test select type MIN # fit.set_fitness_list(fitness) fit.set_selection_type(MIN) fit._scale_list() # inverted self.assertAlmostEqual(2.0, fit._selection_list[0]) self.assertAlmostEqual(4.0, fit._selection_list[1]) self.assertAlmostEqual(0.4, fit._selection_list[2]) # # fitness type MIN, test select type MAX # fitness.set_fitness_type(MIN) fit.set_fitness_list(fitness) fit.set_selection_type(MAX) fit._scale_list() # inverted self.assertAlmostEqual(2.0, fit._selection_list[0]) self.assertAlmostEqual(4.0, fit._selection_list[1]) self.assertAlmostEqual(0.4, fit._selection_list[2]) # # fitness type MIN, test select type MIN # fit.set_fitness_list(fitness) fit.set_selection_type(MIN) fit._scale_list() # not inverted self.assertAlmostEqual(0.5, fit._selection_list[0]) self.assertAlmostEqual(0.25, fit._selection_list[1]) self.assertAlmostEqual(2.5, fit._selection_list[2]) # # fitness type CENTER, test select type MAX # fitness.set_fitness_type(CENTER) fitness.set_target_value(0.75) fit.set_fitness_list(fitness) fit.set_selection_type(MAX) fit._scale_list() # inverted self.assertAlmostEqual(4.0, fit._selection_list[0]) self.assertAlmostEqual(2.0, fit._selection_list[1]) self.assertAlmostEqual(0.5714285714, fit._selection_list[2]) # # fitness type CENTER, test select type MIN # fit.set_fitness_list(fitness) fit.set_selection_type(MIN) fit._scale_list() # not inverted self.assertAlmostEqual(0.25, fit._selection_list[0]) self.assertAlmostEqual(0.5, fit._selection_list[1]) self.assertAlmostEqual(1.75, fit._selection_list[2])