def test_perform_replacements(self):

        #   Existing fitness list
        #[[0.5, 0], [1.5, 1], [2.5, 2], [3.5, 3], [4.5, 4]]

        #   make some replacement selections
        #   This should replace the member_no 4
        self.ges.fitness_list.set_fitness_type(MIN)
        self.ges.set_replacement_selections(
            ReplacementDeleteWorst(self.ges.fitness_list, 1))

        #   make a fitness pool
        new_member = deepcopy(self.ges.population[2])
        new_member.local_bnf['<IAMNEW>'] = ['yes i am']
        orig_member_no = new_member.member_no
        fitness_pool = [new_member]

        #   do the replacements
        self.ges._perform_replacements(fitness_pool)

        #   did replacement take place
        self.assertEqual('yes i am',
                         self.ges.population[4].local_bnf['<IAMNEW>'][0])

        #   was the local bnf for each replaced member update for new member no
        self.assertEqual(4, self.ges.population[4].member_no)

        #   was the generation number bumped up by one
        self.assertEqual(1, self.ges.population[4]._generation)
Exemplo n.º 2
0
class TestReplacementDeleteWorst(unittest.TestCase):
    def setUp(self):
        self.fitness_list = FitnessList(MAX)
        self.fitness_list.extend([[1.5, 0], [2.5, 1], [12.0, 2]])

        self.repl = ReplacementDeleteWorst(self.fitness_list,
                                           replacement_count=1)

    def test_classinit_(self):

        self.assertEqual(1, self.repl._replacement_count)
        self.assertEqual(MIN, self.repl._selection_type)

    def test_set_replacement_count(self):
        self.repl.set_replacement_count(2)
        self.assertEqual(2, self.repl._replacement_count)

        self.repl.set_replacement_count(3)
        self.assertEqual(3, self.repl._replacement_count)

        self.assertRaises(ValueError, self.repl.set_replacement_count, 4)

    def test_select(self):

        #   attempting to maximize remove worst 3
        self.repl.set_replacement_count(3)
        values = [i for i in self.repl.select()]

        self.assertLessEqual(
            self.repl._fitness_list[values[0]][0],
            self.repl._fitness_list[values[1]][0],
        )
        self.assertLessEqual(
            self.repl._fitness_list[values[1]][0],
            self.repl._fitness_list[values[2]][0],
        )

        #   attempting to minimize remove worst 3
        self.fitness_list = FitnessList(MIN)
        values = [i for i in self.repl.select()]

        self.assertGreaterEqual(
            self.repl._fitness_list[values[0]][0],
            self.repl._fitness_list[values[1]][0],
        )
        self.assertGreaterEqual(
            self.repl._fitness_list[values[1]][0],
            self.repl._fitness_list[values[2]][0],
        )
class TestReplacementDeleteWorst(unittest.TestCase):
    def setUp(self):
        self.fitness_list = FitnessList(MAX)
        self.fitness_list.extend([[1.5, 0], [2.5, 1], [12.0, 2]])

        self.repl = ReplacementDeleteWorst(self.fitness_list, replacement_count=1)

    def test_classinit_(self):

        self.assertEqual(1, self.repl._replacement_count)
        self.assertEqual(MIN, self.repl._selection_type)

    def test_set_replacement_count(self):
        self.repl.set_replacement_count(2)
        self.assertEqual(2, self.repl._replacement_count)

        self.repl.set_replacement_count(3)
        self.assertEqual(3, self.repl._replacement_count)

        self.assertRaises(ValueError, self.repl.set_replacement_count, 4)

    def test_select(self):

        #   attempting to maximize remove worst 3
        self.repl.set_replacement_count(3)
        values = [i for i in self.repl.select()]

        self.assertLessEqual(self.repl._fitness_list[values[0]][0], self.repl._fitness_list[values[1]][0])
        self.assertLessEqual(self.repl._fitness_list[values[1]][0], self.repl._fitness_list[values[2]][0])

        #   attempting to minimize remove worst 3
        self.fitness_list = FitnessList(MIN)
        values = [i for i in self.repl.select()]

        self.assertGreaterEqual(self.repl._fitness_list[values[0]][0], self.repl._fitness_list[values[1]][0])
        self.assertGreaterEqual(self.repl._fitness_list[values[1]][0], self.repl._fitness_list[values[2]][0])
Exemplo n.º 4
0
    def setUp(self):
        self.fitness_list = FitnessList(MAX)
        self.fitness_list.extend([[1.5, 0], [2.5, 1], [12.0, 2]])

        self.repl = ReplacementDeleteWorst(self.fitness_list,
                                           replacement_count=1)
    def setUp(self):
        self.fitness_list = FitnessList(MAX)
        self.fitness_list.extend([[1.5, 0], [2.5, 1], [12.0, 2]])

        self.repl = ReplacementDeleteWorst(self.fitness_list, replacement_count=1)