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