def test_strategy(self): """Tests that it chooses the best strategy.""" random.seed(9) p1 = axelrod.ArrogantQLearner() p1.state = 'CCDC' p1.Qs = {'': {C: 0, D: 0}, 'CCDC': {C: 2, D: 6}} p2 = axelrod.Cooperator() test_responses(self, p1, p2, [], [], [C, C, C, C, C, C, C])
def test_prev_state_updates(self): """Test that the q and v values update.""" random.seed(5) p1 = axelrod.ArrogantQLearner() p2 = axelrod.Cooperator() simulate_play(p1, p2) self.assertEqual(p1.prev_state, '0.0') simulate_play(p1, p2) self.assertEqual(p1.prev_state, 'C1.0')
def test_vs_update(self): """Test that the q and v values update.""" random.seed(5) p1 = axelrod.ArrogantQLearner() p2 = axelrod.Cooperator() simulate_play(p1, p2) self.assertEqual(p1.Vs, {'': 0.9, '0.0': 0}) simulate_play(p1, p2) self.assertEqual(p1.Vs, {'': 0.9, '0.0': 2.7, 'C1.0': 0})
def test_reset_method(self): """Tests the reset method.""" P1 = axelrod.ArrogantQLearner() P1.Qs = {'': {C: 0, D: -0.9}, '0.0': {C: 0, D: 0}} P1.Vs = {'': 0, '0.0': 0} P1.history = [C, D, D, D] P1.prev_state = C P1.reset() self.assertEqual(P1.prev_state, '') self.assertEqual(P1.Vs, {'': 0}) self.assertEqual(P1.Qs, {'': {C: 0, D: 0}})
def test_reset_method(self): """Tests the reset method.""" P1 = axelrod.ArrogantQLearner() P1.Qs = {'': {'C': 0, 'D': -0.9}, '0.0': {'C': 0, 'D': 0}} P1.Vs = {'': 0, '0.0': 0} P1.history = ['C', 'D', 'D', 'D'] P1.prev_state = 'C' P1.reset() self.assertEqual(P1.prev_state, '') self.assertEqual(P1.history, []) self.assertEqual(P1.Vs, {'': 0}) self.assertEqual(P1.Qs, {'': {'C': 0, 'D': 0}})
def test_strategy(self): """Tests that it chooses the best strategy.""" random.seed(9) p1 = axelrod.ArrogantQLearner() p1.state = 'CCDC' p1.Qs = {'': {'C': 0, 'D': 0}, 'CCDC': {'C': 2, 'D': 6}} p2 = axelrod.Cooperator() self.assertEqual(p1.strategy(p2), 'C') self.assertEqual(p1.strategy(p2), 'D') self.assertEqual(p1.strategy(p2), 'D') self.assertEqual(p1.strategy(p2), 'D') self.assertEqual(p1.strategy(p2), 'D') self.assertEqual(p1.strategy(p2), 'D')
def test_prev_state_updates(self): """ Test that the q and v values update """ random.seed(5) p1 = axelrod.ArrogantQLearner() p2 = axelrod.Cooperator() play_1, play_2 = p1.strategy(p2), p2.strategy(p1) p1.history.append(play_1) p2.history.append(play_2) self.assertEqual(p1.prev_state, '0.0') play_1, play_2 = p1.strategy(p2), p2.strategy(p1) p1.history.append(play_1) p2.history.append(play_2) self.assertEqual(p1.prev_state, 'C1.0')
def test_qs_update(self): """Test that the q and v values update.""" random.seed(5) p1 = axelrod.ArrogantQLearner() p2 = axelrod.Cooperator() play_1, play_2 = simulate_play(p1, p2) self.assertEqual(p1.Qs, {'': {C: 0, D: 0.9}, '0.0': {C: 0, D: 0}}) simulate_play(p1, p2) self.assertEqual(p1.Qs, { '': { C: 0, D: 0.9 }, '0.0': { C: 2.7, D: 0 }, 'C1.0': { C: 0, D: 0 } })
def test_qs_update(self): """ Test that the q and v values update """ random.seed(5) p1 = axelrod.ArrogantQLearner() p2 = axelrod.Cooperator() play_1, play_2 = p1.strategy(p2), p2.strategy(p1) p1.history.append(play_1) p2.history.append(play_2) self.assertEqual(p1.Qs, { '': { 'C': 0, 'D': -0.9 }, '0.0': { 'C': 0, 'D': 0 } }) play_1, play_2 = p1.strategy(p2), p2.strategy(p1) p1.history.append(play_1) p2.history.append(play_2) self.assertEqual( p1.Qs, { '': { 'C': 0, 'D': -0.9 }, '0.0': { 'C': 0.9, 'D': 0 }, 'C1.0': { 'C': 0, 'D': 0 } })
def test_stochastic(self): self.assertTrue(axelrod.ArrogantQLearner().stochastic)
def test_representation(self): """ Tests string representation of class """ P1 = axelrod.ArrogantQLearner() self.assertEqual(str(P1), 'Arrogant QLearner')
(axl.Cooperator(), axl.PSOGambler2_2_2()), (axl.Alternator(), axl.Random()), (axl.Alternator(), axl.ZDExtort2()), (axl.Alternator(), axl.GTFT()), (axl.Alternator(), axl.ALLCorALLD()), (axl.Alternator(), axl.PSOGambler2_2_2()), (axl.ALLCorALLD(), axl.Cooperator()), (axl.ALLCorALLD(), axl.Defector()), (axl.ALLCorALLD(), axl.TitForTat()), (axl.Alternator(), axl.Cooperator()), (axl.Alternator(), axl.Defector()), (axl.Alternator(), axl.TitForTat()), (axl.Alternator(), axl.WinStayLoseShift()), (axl.Defector(), axl.WinStayLoseShift()), (axl.Calculator(), axl.ALLCorALLD()), (axl.Calculator(), axl.ArrogantQLearner()), (axl.Calculator(), axl.Random()), (axl.Cooperator(), axl.TitForTat()), (axl.Defector(), axl.Cooperator()), (axl.Defector(), axl.TitForTat()), (axl.Random(), axl.Cooperator()), (axl.Random(), axl.Defector()), (axl.Random(), axl.TitForTat()), (axl.WinStayLoseShift(), axl.TitForTat())] max_N = 20 repetitions = 1000 df = pd.read_csv( outcomes_file, header=None,