def test_init(self): """Tests for the __init__ method.""" P1 = axelrod.Punisher() self.assertEqual(P1.history, []) self.assertEqual(P1.mem_length, 1) self.assertEqual(P1.grudged, False) self.assertEqual(P1.grudge_memory, 1)
def test_reset_method(self): """Tests the reset method.""" P1 = axelrod.Punisher() P1.history = [C, D, D, D] P1.grudged = True P1.grudge_memory = 4 P1.reset() self.assertEqual(P1.grudged, False) self.assertEqual(P1.grudge_memory, 0)
j = random.random() #Let Mr Hyde and Dr Jykle compete #If Dr Jykle beats Mr Hyde cooperate else defect if h - j >= 0: return C else: return D hj = DrJekyllMrHyde() #Create instance of class #players = [s() for s in axl.short_run_time_strategies] # Create players players = [ hj, axl.Defector(), axl.TitForTat(), axl.Thumper(), axl.Punisher(), axl.AdaptiveTitForTat(), axl.FirstByDavis(), axl.Appeaser() ] #players.append(hj) tournament = Tournament(players) # Create a tournament results = tournament.play() # Play the tournament results.write_summary('SummaryMileStone3.csv') # Write results to csv file plot = axl.Plot(results) p = plot.boxplot() #Plot results p.show()
def test_init(self): """Tests for the __init__ method.""" player = axelrod.Punisher() self.assertEqual(player.mem_length, 1) self.assertFalse(player.grudged) self.assertEqual(player.grudge_memory, 1)
def test_strategy(self): """ Starts by cooperating """ random.seed(4) P1 = axelrod.Punisher() P2 = axelrod.Player() P2.history = ['C', 'C', 'D', 'D', 'D', 'C'] self.assertEqual(P1.mem_length, 1) self.assertEqual(P1.grudged, False) # Starts by playing C self.assertEqual(P1.strategy(P2), 'C') self.assertEqual(P1.grudged, False) P2.history.append('C') self.assertEqual(P1.strategy(P2), 'C') self.assertEqual(P1.grudged, False) P2.history.append('D') self.assertEqual(P2.history, ['C', 'C', 'D', 'D', 'D', 'C', 'C', 'D']) self.assertEqual(P1.strategy(P2), 'D') self.assertEqual(P1.grudged, True) for turn in range(P1.mem_length - 1): self.assertEqual(P1.mem_length, 10) self.assertEqual(P1.strategy(P2), 'D') # Doesn't matter what opponent plays now P2.history.append(random.choice(['C', 'D'])) self.assertEqual(P1.grudged, True) self.assertEqual(P1.strategy(P2), 'D') self.assertEqual(P1.grudged, True) P2.history.append('C') # Back to being not grudged self.assertEqual(P1.strategy(P2), 'C') self.assertEqual(P1.grudged, False) P2.history.append('C') self.assertEqual(P1.strategy(P2), 'C') self.assertEqual(P1.grudged, False) P2.history.append('D') # Now grudges again self.assertEqual(P1.strategy(P2), 'D') self.assertEqual(P1.mem_length, 8) self.assertEqual(P1.grudged, True) P2.history.append('C') for turn in range(P1.mem_length - 1): self.assertEqual(P1.mem_length, 8) self.assertEqual(P1.strategy(P2), 'D') # Doesn't matter what opponent plays now P2.history.append(random.choice(['C', 'D'])) self.assertEqual(P1.grudged, True) self.assertEqual(P1.strategy(P2), 'D') self.assertEqual(P1.grudged, True) P2.history.append('C') # Back to being not grudged self.assertEqual(P1.strategy(P2), 'C') self.assertEqual(P1.grudged, False) P2.history.append('C')
def test_stochastic(self): self.assertFalse(axelrod.Punisher().stochastic)
def test_strategy(self): """Starts by cooperating.""" random.seed(4) P1 = axelrod.Punisher() P2 = axelrod.Player() history = [C, C, D, D, D, C] set_history(P2, history) self.assertEqual(P1.mem_length, 1) self.assertEqual(P1.grudged, False) # Starts by playing C self.assertEqual(P1.strategy(P2), C) self.assertEqual(P1.grudged, False) history.append(C) set_history(P2, history) self.assertEqual(P1.strategy(P2), C) self.assertEqual(P1.grudged, False) history.append(D) set_history(P2, history) self.assertEqual(P2.history, [C, C, D, D, D, C, C, D]) self.assertEqual(P1.strategy(P2), D) self.assertEqual(P1.grudged, True) for turn in range(P1.mem_length-1): self.assertEqual(P1.mem_length, 10) self.assertEqual(P1.strategy(P2), D) # Doesn't matter what opponent plays now history.append(random.choice([C, D])) set_history(P2, history) self.assertEqual(P1.grudged, True) self.assertEqual(P1.strategy(P2), D) self.assertEqual(P1.grudged, True) history.append(C) set_history(P2, history) # Back to being not grudged self.assertEqual(P1.strategy(P2), C) self.assertEqual(P1.grudged, False) history.append(C) set_history(P2, history) self.assertEqual(P1.strategy(P2), C) self.assertEqual(P1.grudged, False) history.append(D) set_history(P2, history) # Now grudges again self.assertEqual(P1.strategy(P2), D) self.assertEqual(P1.mem_length, 8) self.assertEqual(P1.grudged, True) history.append(C) set_history(P2, history) for turn in range(P1.mem_length-1): self.assertEqual(P1.mem_length, 8) self.assertEqual(P1.strategy(P2), D) # Doesn't matter what opponent plays now history.append(random.choice([C, D])) set_history(P2, history) self.assertEqual(P1.grudged, True) self.assertEqual(P1.strategy(P2), D) self.assertEqual(P1.grudged, True) history.append(C) set_history(P2, history) # Back to being not grudged self.assertEqual(P1.strategy(P2), C) self.assertEqual(P1.grudged, False)