@@ -22,27 +22,47 @@ class TestAPavlov2006(TestPlayer):
22
22
23
23
def test_strategy (self ):
24
24
self .first_play_test (C )
25
- self .responses_test ([C ], [C ] * 6 , [C ] * 6 ,
26
- attrs = {"opponent_class" : "Cooperative" })
27
- self .responses_test ([D ], [C , D , D , D , D , D ], [D ] * 6 ,
28
- attrs = {"opponent_class" : "ALLD" })
29
- self .responses_test ([C , C ], [C , D , C , D , C , D ], [D , C , D , C , D , C ],
30
- attrs = {"opponent_class" : "STFT" })
31
- self .responses_test ([D ], [C , D , D , C , D , D ], [D , D , C , D , D , C ],
32
- attrs = {"opponent_class" : "PavlovD" })
33
- self .responses_test ([C ], [C , D , D , C , D , D , C ], [D , D , C , D , D , C , D ],
34
- attrs = {"opponent_class" : "PavlovD" })
35
- self .responses_test ([D ], [C , D , D , C , D , D ], [C , C , C , D , D , D ],
36
- attrs = {"opponent_class" : "Random" })
37
- self .responses_test ([D ], [C , D , D , D , C , C ], [D , D , D , C , C , C ],
38
- attrs = {"opponent_class" : "Random" })
39
-
40
- def test_reset (self ):
41
- player = self .player ()
42
- opponent = axelrod .Cooperator ()
43
- [player .play (opponent ) for _ in range (10 )]
44
- player .reset ()
45
- self .assertEqual (player .opponent_class , None )
25
+
26
+ actions = [(C , C )] * 7
27
+ self .versus_test (axelrod .Cooperator (), expected_actions = actions ,
28
+ attrs = {"opponent_class" : "Cooperative" })
29
+
30
+ opponent = axelrod .MockPlayer ([C ] * 6 + [D ])
31
+ actions = [(C , C )] * 6 + [(C , D ), (D , C )]
32
+ self .versus_test (opponent , expected_actions = actions ,
33
+ attrs = {"opponent_class" : "Cooperative" })
34
+
35
+ actions = [(C , D )] + [(D , D )] * 6
36
+ self .versus_test (axelrod .Defector (), expected_actions = actions ,
37
+ attrs = {"opponent_class" : "ALLD" })
38
+
39
+ opponent = axelrod .MockPlayer ([D , C , D , C , D , C ])
40
+ actions = [(C , D ), (D , C ), (C , D ), (D , C ),
41
+ (C , D ), (D , C ), (C , D ), (C , C ),
42
+ (C , D ), (D , C )]
43
+ self .versus_test (opponent , expected_actions = actions ,
44
+ attrs = {"opponent_class" : "STFT" })
45
+
46
+ opponent = axelrod .MockPlayer ([D , D , C , D , D , C ])
47
+ actions = [(C , D ), (D , D ), (D , C ), (C , D ), (D , D ), (D , C ), (D , D )]
48
+ self .versus_test (opponent , expected_actions = actions ,
49
+ attrs = {"opponent_class" : "PavlovD" })
50
+
51
+ opponent = axelrod .MockPlayer ([D , D , C , D , D , C , D ])
52
+ actions = [(C , D ), (D , D ), (D , C ), (C , D ),
53
+ (D , D ), (D , C ), (D , D ), (C , D )]
54
+ self .versus_test (opponent , expected_actions = actions ,
55
+ attrs = {"opponent_class" : "PavlovD" })
56
+
57
+ opponent = axelrod .MockPlayer ([C , C , C , D , D , D ])
58
+ actions = [(C , C ), (C , C ), (C , C ), (C , D ), (D , D ), (D , D ), (D , C )]
59
+ self .versus_test (opponent , expected_actions = actions ,
60
+ attrs = {"opponent_class" : "Random" })
61
+
62
+ opponent = axelrod .MockPlayer ([D , D , D , C , C , C ])
63
+ actions = [(C , D ), (D , D ), (D , D ), (D , C ), (C , C ), (C , C ), (D , D )]
64
+ self .versus_test (opponent , expected_actions = actions ,
65
+ attrs = {"opponent_class" : "Random" })
46
66
47
67
48
68
class TestAPavlov2011 (TestPlayer ):
@@ -61,44 +81,57 @@ class TestAPavlov2011(TestPlayer):
61
81
62
82
def test_strategy (self ):
63
83
self .first_play_test (C )
64
- self .responses_test ([C ], [C ] * 6 , [C ] * 6 ,
65
- attrs = {"opponent_class" : "Cooperative" })
66
- self .responses_test ([D ], [C , D , D , D , D , D ], [D ] * 6 ,
67
- attrs = {"opponent_class" : "ALLD" })
68
- self .responses_test ([D ], [C , C , D , D , D , D ], [C ] + [D ] * 5 ,
69
- attrs = {"opponent_class" : "ALLD" })
70
- self .responses_test ([D ], [C , C , C , D , D , D ], [C , C ] + [D ] * 4 ,
71
- attrs = {"opponent_class" : "ALLD" })
72
- self .responses_test ([D ], [C , C , D , D , C , D ], [C , D , D , C , D , D ],
73
- attrs = {"opponent_class" : "ALLD" })
74
-
75
- self .responses_test ([C ], [C , C , D , D , D , C ], [C , D , D , C , C , D ],
76
- attrs = {"opponent_class" : "STFT" })
77
- self .responses_test ([C ], [C , C , D , C , D , C ], [C , D , C , D , C , D ],
78
- attrs = {"opponent_class" : "STFT" })
79
- self .responses_test ([C ], [C , D , D , D , C , C ], [D , D , D , C , C , C ],
80
- attrs = {"opponent_class" : "STFT" })
81
- self .responses_test ([C ], [C , D , D , D , C , C ], [D , D , D , C , C , C ],
82
- attrs = {"opponent_class" : "STFT" })
83
-
84
- # Specific case for STFT when responding with TFT
85
- opponent = axelrod .Player ()
86
- player = axelrod .APavlov2006 ()
87
- player .history = [D ] * 8
88
- opponent .history = [D ] * 8
89
- player .opponent_class = "STFT"
90
- self .assertEqual (player .strategy (opponent ), D )
91
- opponent .history .append (C )
92
- self .assertEqual (player .strategy (opponent ), C )
93
-
94
- self .responses_test ([D ], [C , C , C , C , C , D ], [C , C , C , C , D , D ],
95
- attrs = {"opponent_class" : "Random" })
96
- self .responses_test ([D ], [C , D , D , C , C , C ], [D , D , C , C , C , C ],
97
- attrs = {"opponent_class" : "Random" })
98
-
99
- def test_reset (self ):
100
- player = self .player ()
101
- opponent = axelrod .Cooperator ()
102
- [player .play (opponent ) for _ in range (10 )]
103
- player .reset ()
104
- self .assertEqual (player .opponent_class , None )
84
+
85
+ actions = [(C , C )] * 8
86
+ self .versus_test (axelrod .Cooperator (), expected_actions = actions ,
87
+ attrs = {"opponent_class" : "Cooperative" })
88
+
89
+ actions = [(C , D )] + [(D , D )] * 9
90
+ self .versus_test (axelrod .Defector (), expected_actions = actions ,
91
+ attrs = {"opponent_class" : "ALLD" })
92
+
93
+ opponent = axelrod .MockPlayer ([C , D , D , D , D , D , D ])
94
+ actions = [(C , C ), (C , D )] + [(D , D )] * 5 + [(D , C )]
95
+ self .versus_test (opponent , expected_actions = actions ,
96
+ attrs = {"opponent_class" : "ALLD" })
97
+
98
+ opponent = axelrod .MockPlayer ([C , C , D , D , D , D , D ])
99
+ actions = [(C , C ), (C , C ), (C , D )] + [(D , D )] * 4 + [(D , C )]
100
+ self .versus_test (opponent , expected_actions = actions ,
101
+ attrs = {"opponent_class" : "ALLD" })
102
+
103
+ opponent = axelrod .MockPlayer ([C , D , D , C , D , D , D ])
104
+ actions = [(C , C ), (C , D ), (D , D ), (D , C ),
105
+ (C , D ), (D , D ), (D , D ), (D , C )]
106
+ self .versus_test (opponent , expected_actions = actions ,
107
+ attrs = {"opponent_class" : "ALLD" })
108
+
109
+ opponent = axelrod .MockPlayer ([C , D , D , C , C , D , D ])
110
+ actions = [(C , C ), (C , D ), (D , D ), (D , C ),
111
+ (C , C ), (C , D ), (C , D ), (D , C )]
112
+ self .versus_test (opponent , expected_actions = actions ,
113
+ attrs = {"opponent_class" : "STFT" })
114
+
115
+ opponent = axelrod .MockPlayer ([C , D , C , D , C , D , D ])
116
+ actions = [(C , C ), (C , D ), (D , C ), (C , D ),
117
+ (D , C ), (C , D ), (C , D ), (D , C )]
118
+ self .versus_test (opponent , expected_actions = actions ,
119
+ attrs = {"opponent_class" : "STFT" })
120
+
121
+ opponent = axelrod .MockPlayer ([D , D , D , C , C , C , C ])
122
+ actions = [(C , D ), (D , D ), (D , D ), (D , C ),
123
+ (C , C ), (C , C ), (C , C ), (C , D )]
124
+ self .versus_test (opponent , expected_actions = actions ,
125
+ attrs = {"opponent_class" : "STFT" })
126
+
127
+ opponent = axelrod .MockPlayer ([C , C , C , C , D , D ])
128
+ actions = [(C , C ), (C , C ), (C , C ), (C , C ),
129
+ (C , D ), (D , D ), (D , C ), (D , C )]
130
+ self .versus_test (opponent , expected_actions = actions ,
131
+ attrs = {"opponent_class" : "Random" })
132
+
133
+ opponent = axelrod .MockPlayer ([D , D , C , C , C , C ])
134
+ actions = [(C , D ), (D , D ), (D , C ), (C , C ),
135
+ (C , C ), (C , C ), (D , D ), (D , D )]
136
+ self .versus_test (opponent , expected_actions = actions ,
137
+ attrs = {"opponent_class" : "Random" })
0 commit comments