class RouletteWheelSelectionTest(unittest.TestCase):
    """Test selection using a roulette wheel selection scheme.
    """
    def setUp(self):
        self.selector = RouletteWheelSelection(NoMutation(), NoCrossover(),
                                               NoRepair())

    def test_select_best(self):
        """Ensure selection of a best organism in a population of 2.
        """
        worst_genome = MutableSeq("0", TestAlphabet())
        worst_org = Organism(worst_genome, test_fitness)

        better_genome = MutableSeq("1", TestAlphabet())
        better_org = Organism(better_genome, test_fitness)

        new_pop = self.selector.select([worst_org, better_org])
        for org in new_pop:
            assert org == better_org, "Worse organism unexpectly selected."

    def test_selection(self):
        """Test basic selection on a small population.
        """
        pop = [random_organism() for org_num in range(50)]
        new_pop = self.selector.select(pop)

        assert len(new_pop) == len(pop), "Did not maintain population size."
Example #2
0
class RouletteWheelSelectionTest(unittest.TestCase):
    """Test selection using a roulette wheel selection scheme.
    """
    def setUp(self):
        self.selector = RouletteWheelSelection(NoMutation(), NoCrossover(),
                                               NoRepair())

    def test_select_best(self):
        """Ensure selection of a best organism in a population of 2.
        """
        worst_genome = MutableSeq("0", TestAlphabet())
        worst_org = Organism(worst_genome, test_fitness)

        better_genome = MutableSeq("1", TestAlphabet())
        better_org = Organism(better_genome, test_fitness)

        new_pop = self.selector.select([worst_org, better_org])
        for org in new_pop:
            self.assertEqual(org, better_org,
                             "Worse organism unexpectly selected.")

    def test_selection(self):
        """Test basic selection on a small population.
        """
        pop = [random_organism() for org_num in range(50)]
        new_pop = self.selector.select(pop)

        self.assertEqual(len(new_pop), len(pop),
                         "Did not maintain population size.")
 def setUp(self):
     self.selector = RouletteWheelSelection(NoMutation(), NoCrossover(),
                                            NoRepair())
Example #4
0
 def setUp(self):
     self.selector = RouletteWheelSelection(NoMutation(), NoCrossover(),
                                            NoRepair())