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])