Axelrod icon indicating copy to clipboard operation
Axelrod copied to clipboard

Retains history classifier

Open marcharper opened this issue 4 years ago • 2 comments

In the course of #1288 I added a test for Match reproducibility given a random seed. The strategy Darwin fails this test because it retains history at the class level. While this is an exception now, it's easy to imagine future games or variations that would intentionally retain history (in a way that's not considered cheating). So perhaps it makes sense to have a classifier field for "retains_history".

marcharper avatar Apr 21 '20 05:04 marcharper

This is the (failing) test:

    def test_reproducibility_of_play(self):
        player = self.player()
        player_clone = player.clone()
        coplayer = axl.Random(0.5)
        coplayer_clone = coplayer.clone()
        m1 = axl.Match((player, coplayer), turns=10, seed=10)
        m2 = axl.Match((player_clone, coplayer_clone), turns=10, seed=10)
        m1.play()
        m2.play()
        self.assertEqual(m1.result, m2.result)`

I realize now this test is quite similar to the existing test_clone which excludes Darwin and Human, nevertheless perhaps the classifier still makes sense.

marcharper avatar Apr 21 '20 05:04 marcharper

So perhaps it makes sense to have a classifier field for "retains_history".

Sounds good to me :+1:

drvinceknight avatar Apr 21 '20 07:04 drvinceknight