Beispiel #1
0
    def test_strategy(self):

        team = [axelrod.TitForTat, axelrod.Cooperator, axelrod.Grudger]
        distribution = [.2, .5, .3]

        P1 = axelrod.MetaMixer(team, distribution)
        P2 = axelrod.Cooperator()

        for k in range(100):
            P1.play(P2)
            self.assertEqual(P1.history[-1], C)

        team.append(axelrod.Defector)
        distribution = [.2, .5, .3, 0]  # If add a defector but does not occur

        P1 = axelrod.MetaMixer(team, distribution)

        for k in range(100):
            P1.play(P2)
            self.assertEqual(P1.history[-1], C)

        distribution = [0, 0, 0, 1]  # If defector is only one that is played

        P1 = axelrod.MetaMixer(team, distribution)

        for k in range(100):
            P1.play(P2)
            self.assertEqual(P1.history[-1], D)
Beispiel #2
0
    def test_strategy(self):

        team = [axelrod.TitForTat, axelrod.Cooperator, axelrod.Grudger]
        distribution = [.2, .5, .3]

        P1 = axelrod.MetaMixer(team=team, distribution=distribution)
        P2 = axelrod.Cooperator()
        actions = [(C, C)] * 20
        self.versus_test(opponent=axelrod.Cooperator(),
                         expected_actions=actions,
                         init_kwargs={
                             "team": team,
                             "distribution": distribution
                         })

        team.append(axelrod.Defector)
        distribution = [.2, .5, .3, 0]  # If add a defector but does not occur
        self.versus_test(opponent=axelrod.Cooperator(),
                         expected_actions=actions,
                         init_kwargs={
                             "team": team,
                             "distribution": distribution
                         })

        distribution = [0, 0, 0, 1]  # If defector is only one that is played
        actions = [(D, C)] * 20
        self.versus_test(opponent=axelrod.Cooperator(),
                         expected_actions=actions,
                         init_kwargs={
                             "team": team,
                             "distribution": distribution
                         })
Beispiel #3
0
    def test_raise_error_in_distribution(self):
        team = [axelrod.TitForTat, axelrod.Cooperator, axelrod.Grudger]
        distribution = [0.2, 0.5, 0.5]  # Not a valid probability distribution

        player = axelrod.MetaMixer(team=team, distribution=distribution)
        opponent = axelrod.Cooperator()

        self.assertRaises(ValueError, player.strategy, opponent)
Beispiel #4
0
    def test_raise_error_in_distribution(self):
        team = [axelrod.TitForTat, axelrod.Cooperator, axelrod.Grudger]
        distribution = [.2, .5, .5]  # Not a valid probability distribution

        P1 = axelrod.MetaMixer(team, distribution)
        P2 = axelrod.Cooperator()

        self.assertRaises(ValueError, P1.strategy, P2)