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))
Ejemplo n.º 2
0
    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))
Ejemplo n.º 3
0
    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])
Ejemplo n.º 5
0
    def test_classinit_(self):
        """
        Does it set the fitness_list?
        """

        fitness = FitnessList(MAX)
        fit = Fitness(fitness)

        self.assertEqual(fit._fitness_list, fitness)
Ejemplo n.º 6
0
    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])
Ejemplo n.º 9
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])