Exemplo n.º 1
0
    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])