Skip to content

Commit 894ebb7

Browse files
authored
Merge pull request #1333 from gaffney2010/standardize-memory
Standardize tests for memoryone and memorytwo files.
2 parents fe3bc42 + 54a5c6d commit 894ebb7

File tree

5 files changed

+14
-99
lines changed

5 files changed

+14
-99
lines changed

axelrod/data/all_classifiers.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1221,6 +1221,14 @@ Opposite Grudger:
12211221
manipulates_state: false
12221222
memory_depth: .inf
12231223
stochastic: false
1224+
Original Gradual:
1225+
inspects_source: false
1226+
long_run_time: false
1227+
makes_use_of: !!set {}
1228+
manipulates_source: false
1229+
manipulates_state: false
1230+
memory_depth: .inf
1231+
stochastic: false
12241232
PSO Gambler 1_1_1:
12251233
inspects_source: false
12261234
long_run_time: false

axelrod/strategies/memoryone.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,6 @@ def set_initial_four_vector(self, four_vector):
7373
warnings.warn("Memory one player is set to default (1, 0, 0, 1).")
7474

7575
self.set_four_vector(four_vector)
76-
if self.name == "Generic Memory One Player":
77-
self.name = "%s: %s" % (self.name, four_vector)
7876

7977
def set_four_vector(self, four_vector: Tuple[float, float, float, float]):
8078
if not all(0 <= p <= 1 for p in four_vector):
@@ -340,4 +338,3 @@ class ReactivePlayer(MemoryOnePlayer):
340338
def __init__(self, probabilities: Tuple[float, float]) -> None:
341339
four_vector = (*probabilities, *probabilities)
342340
super().__init__(four_vector)
343-
self.name = "%s: %s" % (self.name, probabilities)

axelrod/strategies/memorytwo.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import itertools
44
import warnings
5-
from typing import Dict, Tuple
5+
from typing import Dict, Optional, Tuple
66

77
from axelrod.action import Action
88
from axelrod.player import Player
@@ -55,7 +55,7 @@ class MemoryTwoPlayer(Player):
5555
}
5656

5757
def __init__(
58-
self, sixteen_vector: Tuple[float, ...] = None, initial: Action = C
58+
self, sixteen_vector: Tuple[float, ...] = None, initial: Optional[Action] = None
5959
) -> None:
6060
"""
6161
Parameters
@@ -67,6 +67,8 @@ def __init__(
6767
The initial 2 moves
6868
"""
6969
super().__init__()
70+
if initial is None:
71+
initial = C
7072
self._initial = initial
7173
self.set_initial_sixteen_vector(sixteen_vector)
7274

@@ -76,8 +78,6 @@ def set_initial_sixteen_vector(self, sixteen_vector):
7678
warnings.warn("Memory two player is set to default, Cooperator.")
7779

7880
self.set_sixteen_vector(sixteen_vector)
79-
if self.name == "Generic Memory Two Player":
80-
self.name = "%s: %s" % (self.name, sixteen_vector)
8181

8282
def set_sixteen_vector(self, sixteen_vector: Tuple):
8383
if not all(0 <= p <= 1 for p in sixteen_vector):
@@ -127,7 +127,7 @@ class AON2(MemoryTwoPlayer):
127127
128128
In [Hilbe2017]_ the following vectors are reported as "equivalent" to AON2
129129
with their respective self-cooperation rate (note that these are not the same):
130-
130+
131131
1. [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], self-cooperation
132132
rate: 0.952
133133
2. [1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], self-cooperation

axelrod/tests/strategies/test_memoryone.py

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,6 @@
1010
C, D = axl.Action.C, axl.Action.D
1111

1212

13-
class TestGenericPlayerOne(unittest.TestCase):
14-
"""A class to test the naming and classification of generic memory one
15-
players."""
16-
17-
p1 = axl.MemoryOnePlayer(four_vector=(0, 0, 0, 0))
18-
p2 = axl.MemoryOnePlayer(four_vector=(1, 0, 1, 0))
19-
p3 = axl.MemoryOnePlayer(four_vector=(1, 0.5, 1, 0.5))
20-
21-
def test_name(self):
22-
self.assertEqual(self.p1.name, "Generic Memory One Player: (0, 0, 0, 0)")
23-
self.assertEqual(self.p2.name, "Generic Memory One Player: (1, 0, 1, 0)")
24-
self.assertEqual(self.p3.name, "Generic Memory One Player: (1, 0.5, 1, 0.5)")
25-
26-
def test_stochastic_classification(self):
27-
self.assertFalse(axl.Classifiers["stochastic"](self.p1))
28-
self.assertFalse(axl.Classifiers["stochastic"](self.p2))
29-
self.assertTrue(axl.Classifiers["stochastic"](self.p3))
30-
31-
3213
class TestWinStayLoseShift(TestPlayer):
3314

3415
name = "Win-Stay Lose-Shift: C"
@@ -292,11 +273,6 @@ class TestGenericReactiveStrategy(unittest.TestCase):
292273
p2 = axl.ReactivePlayer(probabilities=(1, 0))
293274
p3 = axl.ReactivePlayer(probabilities=(1, 0.5))
294275

295-
def test_name(self):
296-
self.assertEqual(self.p1.name, "Reactive Player: (0, 0)")
297-
self.assertEqual(self.p2.name, "Reactive Player: (1, 0)")
298-
self.assertEqual(self.p3.name, "Reactive Player: (1, 0.5)")
299-
300276
def test_four_vector(self):
301277
self.assertEqual(
302278
self.p1._four_vector, {(C, D): 0.0, (D, C): 0.0, (C, C): 0.0, (D, D): 0.0}
@@ -308,11 +284,6 @@ def test_four_vector(self):
308284
self.p3._four_vector, {(C, D): 0.5, (D, C): 1.0, (C, C): 1.0, (D, D): 0.5}
309285
)
310286

311-
def test_stochastic_classification(self):
312-
self.assertFalse(axl.Classifiers["stochastic"](self.p1))
313-
self.assertFalse(axl.Classifiers["stochastic"](self.p2))
314-
self.assertTrue(axl.Classifiers["stochastic"](self.p3))
315-
316287
def test_subclass(self):
317288
self.assertIsInstance(self.p1, MemoryOnePlayer)
318289
self.assertIsInstance(self.p2, MemoryOnePlayer)

axelrod/tests/strategies/test_memorytwo.py

Lines changed: 1 addition & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -14,67 +14,6 @@
1414
C, D = axl.Action.C, axl.Action.D
1515

1616

17-
class TestGenericPlayerTwo(unittest.TestCase):
18-
"""A class to test the naming and classification of generic memory two
19-
players."""
20-
21-
p1 = MemoryTwoPlayer(
22-
sixteen_vector=(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
23-
)
24-
p2 = MemoryTwoPlayer(
25-
sixteen_vector=(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0)
26-
)
27-
p3 = MemoryTwoPlayer(
28-
sixteen_vector=(
29-
0.5,
30-
0.5,
31-
0.5,
32-
0.5,
33-
0.5,
34-
0.5,
35-
0.5,
36-
0.5,
37-
0.5,
38-
0.5,
39-
0.5,
40-
0.5,
41-
0.5,
42-
0.5,
43-
0.5,
44-
0.5,
45-
)
46-
)
47-
p4 = MemoryTwoPlayer(
48-
sixteen_vector=(0.1, 0, 0.2, 0, 0.3, 0, 0.4, 0, 0.5, 0, 0.6, 0, 0.7, 0, 0.8, 0)
49-
)
50-
51-
def test_name(self):
52-
self.assertEqual(
53-
self.p1.name,
54-
"Generic Memory Two Player: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)",
55-
)
56-
self.assertEqual(
57-
self.p2.name,
58-
"Generic Memory Two Player: (1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0)",
59-
)
60-
self.assertEqual(
61-
self.p3.name,
62-
"Generic Memory Two Player: (0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5)",
63-
)
64-
self.assertEqual(
65-
self.p4.name,
66-
"Generic Memory Two Player: (0.1, 0, 0.2, 0, 0.3, 0, 0.4, 0, 0.5, 0, 0.6, 0, 0.7, 0, 0.8, 0)",
67-
)
68-
69-
def test_deterministic_classification(self):
70-
self.assertFalse(axl.Classifiers["stochastic"](self.p1))
71-
self.assertFalse(axl.Classifiers["stochastic"](self.p2))
72-
73-
def test_stochastic_classification(self):
74-
self.assertTrue(axl.Classifiers["stochastic"](self.p3))
75-
self.assertTrue(axl.Classifiers["stochastic"](self.p4))
76-
77-
7817
class TestMemoryTwoPlayer(unittest.TestCase):
7918
def test_default_if_four_vector_not_set(self):
8019
player = MemoryTwoPlayer()
@@ -142,7 +81,7 @@ def test_exception_if_probability_vector_outside_valid_values(self):
14281

14382
class TestMemoryStochastic(TestPlayer):
14483
name = (
145-
"Generic Memory Two Player: (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1): C"
84+
"Generic Memory Two Player"
14685
)
14786
player = axl.MemoryTwoPlayer
14887
expected_classifier = {

0 commit comments

Comments
 (0)