Skip to content

Commit 0a47ff6

Browse files
committed
Update some more tests
1 parent d1e3db2 commit 0a47ff6

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

axelrod/tests/strategies/test_evolvable_player.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ def mutate(self):
4141
return EvolvableTestOpponent(value)
4242

4343
def crossover(self, other):
44+
if other.__class__ != self.__class__:
45+
raise TypeError("Crossover must be between the same player classes.")
4446
value = self.value + other.value
4547
return EvolvableTestOpponent(value)
4648

@@ -56,8 +58,9 @@ def player(self):
5658

5759
def test_repr(self):
5860
"""Test that the representation is correct."""
59-
if not self.__class__ != EvolvablePlayer:
60-
self.assertEqual(str(self.player()), self.name)
61+
if self.__class__ != TestEvolvablePlayer:
62+
self.assertIn(self.name, str(self.player()))
63+
pass
6164

6265
def test_initialisation(self):
6366
"""Test that the player initiates correctly."""
@@ -123,7 +126,9 @@ def test_crossover(self):
123126

124127
def test_crossover_mismatch(self):
125128
other = axl.Cooperator()
126-
self.assertRaises(TypeError, self.player_class.crossover, other=other)
129+
player = self.player()
130+
with self.assertRaises(TypeError):
131+
player.crossover(other)
127132

128133
def test_serialization(self):
129134
"""Serializing and deserializing should return the original player."""

axelrod/tests/strategies/test_gambler.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,10 @@ def test_create_vector_bounds(self):
529529
self.assertEqual(len(lb), 8)
530530
self.assertEqual(len(ub), 8)
531531

532+
def test_mutate_value_bounds(self):
533+
self.assertEqual(axelrod.EvolvableGambler.mutate_value(2), 1)
534+
self.assertEqual(axelrod.EvolvableGambler.mutate_value(-2), 0)
535+
532536

533537
class TestEvolvableGambler2(TestEvolvablePlayer):
534538
name = "EvolvableGambler"
@@ -563,7 +567,7 @@ class TestEvolvableGambler4(TestEvolvablePlayer):
563567
axelrod.EvolvableGambler,
564568
pattern=tables[("PSO Gambler 2_2_2", 2, 2, 2)],
565569
parameters=(2, 2, 2),
566-
initial_actions=(C,C,)
570+
initial_actions=(C, C,)
567571
)
568572

569573

axelrod/tests/unit/test_moran.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,14 +402,23 @@ def test_atomic_mutation_cycler(self):
402402
self.assertEqual(len(mp.populations), 19)
403403
self.assertTrue(mp.fixated)
404404

405-
def test_mutation_method_exception(self):
405+
def test_mutation_method_exceptions(self):
406406
axelrod.seed(10)
407407
cycle_length = 5
408408
players = [axelrod.EvolvableCycler(cycle_length=cycle_length)
409409
for _ in range(5)]
410410
with self.assertRaises(ValueError):
411411
MoranProcess(players, turns=10, mutation_method="random")
412412

413+
axelrod.seed(0)
414+
players = [axelrod.Cycler(cycle="CD" * random.randint(2, 10))
415+
for _ in range(10)]
416+
417+
mp = MoranProcess(players, turns=10, mutation_method="atomic")
418+
with self.assertRaises(TypeError):
419+
for _ in range(10):
420+
next(mp)
421+
413422

414423
class GraphMoranProcess(unittest.TestCase):
415424
def test_complete(self):

0 commit comments

Comments
 (0)