File tree Expand file tree Collapse file tree 2 files changed +10
-22
lines changed Expand file tree Collapse file tree 2 files changed +10
-22
lines changed Original file line number Diff line number Diff line change @@ -464,28 +464,8 @@ def build_payoff_diffs_means(self):
464
464
Where pij is the mean difference of the
465
465
scores per turn between player i and j in repetition m.
466
466
"""
467
- plist = list (range (self .nplayers ))
468
- payoff_diffs_means = [[0 for opponent in plist ] for player in plist ]
469
-
470
- for player in plist :
471
- for opponent in plist :
472
- diffs = []
473
- for index_pair , repetitions in self .interactions .items ():
474
- if (player , opponent ) == index_pair :
475
- for interaction in repetitions :
476
- scores = iu .compute_final_score_per_turn (interaction ,
477
- self .game )
478
- diffs .append (scores [0 ] - scores [1 ])
479
- elif (opponent , player ) == index_pair :
480
- for interaction in repetitions :
481
- scores = iu .compute_final_score_per_turn (interaction ,
482
- self .game )
483
- diffs .append (scores [1 ] - scores [0 ])
484
- if diffs :
485
- payoff_diffs_means [player ][opponent ] = mean (diffs )
486
- else :
487
- payoff_diffs_means [player ][opponent ] = 0
488
-
467
+ payoff_diffs_means = [[mean (diff ) for diff in player ]
468
+ for player in self .score_diffs ]
489
469
return payoff_diffs_means
490
470
491
471
@update_progress_bar
Original file line number Diff line number Diff line change @@ -364,6 +364,14 @@ def test_eigenmoses_rating(self):
364
364
for j , rate in enumerate (rs .eigenmoses_rating ):
365
365
self .assertAlmostEqual (rate , self .expected_eigenmoses_rating [j ])
366
366
367
+ def test_self_interaction_for_random_strategies (self ):
368
+ # Based on https://github.com/Axelrod-Python/Axelrod/issues/670
369
+ axelrod .seed (0 )
370
+ players = [s () for s in axelrod .demo_strategies ]
371
+ tournament = axelrod .Tournament (players , repetitions = 2 , turns = 5 )
372
+ results = tournament .play ()
373
+ self .assertEqual (results .payoff_diffs_means [- 1 ][- 1 ], 1.0 )
374
+
367
375
368
376
class TestResultSetFromFile (unittest .TestCase ):
369
377
tmp_file = tempfile .NamedTemporaryFile (mode = 'w' , delete = False )
You can’t perform that action at this time.
0 commit comments