Skip to content

Commit 43f6ab8

Browse files
committed
Cover some uncovered lines
1 parent 457ae8f commit 43f6ab8

15 files changed

+100
-16
lines changed

axelrod/strategies/ann.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ def strategy(self, opponent: Player) -> Action:
222222

223223
class EvolvableANN(ANN, EvolvablePlayer):
224224
"""Evolvable version of ANN."""
225+
name = "EvolvableANN"
225226

226227
def __init__(
227228
self, num_features: int, num_hidden: int,
@@ -273,7 +274,7 @@ def mutate(self):
273274
return self.create_new(weights=weights)
274275

275276
def crossover(self, other):
276-
if not isinstance(other, self.__class__):
277+
if other.__class__ != self.__class__:
277278
raise TypeError("Crossover must be between the same player classes.")
278279
weights = crossover_lists(self.weights, other.weights)
279280
return self.create_new(weights=weights)

axelrod/strategies/cycler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ def crossover(self, other) -> EvolvablePlayer:
158158
"""
159159
Creates and returns a new Player instance with a single crossover point.
160160
"""
161-
if not isinstance(other, self.__class__):
161+
if other.__class__ != self.__class__:
162162
raise TypeError("Crossover must be between the same player classes.")
163163
cycle_list = crossover_lists(self.cycle, other.cycle)
164164
cycle = "".join(cycle_list)

axelrod/strategies/finite_state_machines.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ def crossover_rows(rows1, rows2):
250250
return new_rows
251251

252252
def crossover(self, other):
253-
if not isinstance(other, self.__class__):
253+
if other.__class__ != self.__class__:
254254
raise TypeError("Crossover must be between the same player classes.")
255255
transitions = self.crossover_rows(self.fsm.transitions(), other.fsm.transitions())
256256
transitions = self.normalize_transitions(transitions)

axelrod/strategies/hmm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ def mutate(self):
290290
)
291291

292292
def crossover(self, other):
293-
if not isinstance(other, self.__class__):
293+
if other.__class__ != self.__class__:
294294
raise TypeError("Crossover must be between the same player classes.")
295295
transitions_C = crossover_lists(self.hmm.transitions_C, other.hmm.transitions_C)
296296
transitions_D = crossover_lists(self.hmm.transitions_D, other.hmm.transitions_D)

axelrod/strategies/lookerup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ def mutate(self):
500500
)
501501

502502
def crossover(self, other):
503-
if not isinstance(other, self.__class__):
503+
if other.__class__ != self.__class__:
504504
raise TypeError("Crossover must be between the same player classes.")
505505
lookup_dict = crossover_dictionaries(self.lookup_dict, other.lookup_dict)
506506
return self.create_new(lookup_dict=lookup_dict)

axelrod/tests/strategies/test_ann.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,6 @@ def test_equality_of_clone(self):
146146

147147
def test_equality_of_pickle_clone(self):
148148
pass
149+
150+
def test_repr(self):
151+
pass

axelrod/tests/strategies/test_cycler.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,3 +228,6 @@ def test_equality_of_clone(self):
228228

229229
def test_equality_of_pickle_clone(self):
230230
pass
231+
232+
def test_repr(self):
233+
pass

axelrod/tests/strategies/test_evolvable_player.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,14 @@ class TestEvolvablePlayer(TestPlayer):
5454
def player(self):
5555
return self.player_class(**self.init_parameters)
5656

57+
def test_repr(self):
58+
"""Test that the representation is correct."""
59+
if not self.__class__ != EvolvablePlayer:
60+
self.assertEqual(str(self.player()), self.name)
61+
5762
def test_initialisation(self):
5863
"""Test that the player initiates correctly."""
59-
if not issubclass(self.__class__, TestPlayer):
64+
if self.__class__ != TestEvolvablePlayer:
6065
player = self.player()
6166
self.assertEqual(len(player.history), 0)
6267
self.assertEqual(player.cooperations, 0)
@@ -159,15 +164,6 @@ def test_behavior(self):
159164
self.behavior_test(deserialized_player, parent_player)
160165

161166

162-
def compare_dicts(d1, d2):
163-
"""For investigating issues above."""
164-
for k, v in d1.items():
165-
if d2[k] != v:
166-
print()
167-
print(k, d1[k])
168-
print(k, d2[k])
169-
170-
171167
class TestUtilityFunctions(unittest.TestCase):
172168

173169
def test_copy_lists(self):

axelrod/tests/strategies/test_finite_state_machines.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,3 +1132,6 @@ def test_equality_of_clone(self):
11321132

11331133
def test_equality_of_pickle_clone(self):
11341134
pass
1135+
1136+
def test_repr(self):
1137+
pass

axelrod/tests/strategies/test_gambler.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,3 +575,6 @@ def test_equality_of_clone(self):
575575

576576
def test_equality_of_pickle_clone(self):
577577
pass
578+
579+
def test_repr(self):
580+
pass

0 commit comments

Comments
 (0)