예제 #1
0
 def test_randomize(self):
     p1 = Population(num_nets=3, num_elite=1)
     p1.elites = [p1.networks.pop()]
     p2 = copy(p1)
     p2.randomize()
     self.assertEqual(p1.elites, p2.elites)
     self.assertNotEqual(p1.networks, p2.networks)
예제 #2
0
    def test_play_games(self):
        p = Population(num_nets=3, num_elite=1)
        p.elites = [p.networks.pop()]

        p.play_games(2, include_elites=True, progress_bar=False)
        self.assertEqual(p.elites[0].get_num_games_played(), 2)
        [self.assertEqual(n.get_num_games_played(), 2) for n in p.networks]

        p.play_games(2, include_elites=True, progress_bar=False,
                     thresh=1e20)  # Impossibly high threshold.
        self.assertEqual(p.elites[0].get_num_games_played(), 2)
        [self.assertEqual(n.get_num_games_played(), 2) for n in p.networks]

        p.play_games(2, include_elites=False, progress_bar=False)
        self.assertEqual(p.elites[0].get_num_games_played(), 2)
        [self.assertEqual(n.get_num_games_played(), 4) for n in p.networks]
예제 #3
0
 def test_get_sorted_networks(self):
     p = Population(num_nets=3, num_elite=1)
     p.elites = [p.networks.pop()]
     p.play_games(2, include_elites=True, progress_bar=False)
     self.assertEqual(len(p.get_sorted_networks(False)), 2)
     self.assertEqual(len(p.get_sorted_networks(True)), 3)