4
4
5
5
from numpy import mean , std , nanmedian
6
6
7
- import tempfile
8
7
import csv
9
8
10
9
from hypothesis import given , settings
@@ -16,6 +15,8 @@ class TestResultSet(unittest.TestCase):
16
15
@classmethod
17
16
def setUpClass (cls ):
18
17
18
+ cls .filename = "test_outputs/test_results.csv"
19
+
19
20
cls .players = (axelrod .Alternator (), axelrod .TitForTat (), axelrod .Defector ())
20
21
cls .turns = 5
21
22
cls .matches = {
@@ -410,11 +411,10 @@ def test_summarise(self):
410
411
ranked_median_wins )
411
412
412
413
def test_write_summary (self ):
413
- tmp_file = tempfile .NamedTemporaryFile ()
414
414
rs = axelrod .ResultSet (self .players , self .interactions ,
415
415
progress_bar = False )
416
- rs .write_summary (filename = tmp_file . name )
417
- with open (tmp_file . name , "r" ) as csvfile :
416
+ rs .write_summary (filename = self . filename )
417
+ with open (self . filename , "r" ) as csvfile :
418
418
ranked_names = []
419
419
csvreader = csv .reader (csvfile )
420
420
for row in csvreader :
@@ -427,46 +427,45 @@ def test_write_summary(self):
427
427
428
428
429
429
class TestResultSetFromFile (unittest .TestCase ):
430
- tmp_file = tempfile . NamedTemporaryFile ( mode = 'w' , delete = False )
430
+ filename = "test_outputs/test_results_from_file.csv"
431
431
players = [axelrod .Cooperator (),
432
432
axelrod .TitForTat (),
433
433
axelrod .Defector ()]
434
434
tournament = axelrod .Tournament (players = players , turns = 2 , repetitions = 3 )
435
- tournament .play (filename = tmp_file .name )
436
- tmp_file .close ()
435
+ tournament .play (filename = filename )
437
436
438
- interactions = iu .read_interactions_from_file (tmp_file . name )
437
+ interactions = iu .read_interactions_from_file (filename )
439
438
440
439
def test_init (self ):
441
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
440
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
442
441
self .assertEqual (brs .players , [str (p ) for p in self .players ])
443
442
self .assertEqual (brs .nplayers , len (self .players ))
444
443
self .assertEqual (brs .nrepetitions , 3 )
445
444
446
445
def test_init_with_different_game (self ):
447
446
game = axelrod .Game (p = - 1 , r = - 1 , s = - 1 , t = - 1 )
448
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False ,
447
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False ,
449
448
game = game )
450
449
self .assertEqual (brs .game .RPST (), (- 1 , - 1 , - 1 , - 1 ))
451
450
452
451
def test_init_with_progress_bar (self ):
453
452
"""Just able to test that no error occurs"""
454
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = True )
453
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = True )
455
454
self .assertEqual (brs .nplayers , len (self .players ))
456
455
self .assertEqual (brs .nrepetitions , 3 )
457
456
self .assertEqual (brs .num_interactions , 18 )
458
457
459
458
def test_init_with_num_interactions (self ):
460
459
"""Just able to test that no error occurs"""
461
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = True ,
460
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = True ,
462
461
num_interactions = 18 )
463
462
self .assertEqual (brs .nplayers , len (self .players ))
464
463
self .assertEqual (brs .nrepetitions , 3 )
465
464
self .assertEqual (brs .num_interactions , 18 )
466
465
467
466
def test_init_with_players_nrepetitions (self ):
468
467
"""Just able to test that no error occurs"""
469
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = True ,
468
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = True ,
470
469
num_interactions = 18 , nrepetitions = 3 ,
471
470
players = [str (p ) for p in self .players ])
472
471
self .assertEqual (brs .nplayers , len (self .players ))
@@ -476,13 +475,13 @@ def test_init_with_players_nrepetitions(self):
476
475
def test_equality (self ):
477
476
"""A test that checks overall equality by comparing to the base result
478
477
set class"""
479
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
478
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
480
479
rs = axelrod .ResultSet (self .players , self .interactions , progress_bar = False )
481
480
self .assertEqual (rs , brs )
482
481
483
482
def test_interactions_equality (self ):
484
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False ,
485
- keep_interactions = True )
483
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False ,
484
+ keep_interactions = True )
486
485
rs = axelrod .ResultSet (self .players , self .interactions , progress_bar = False )
487
486
self .assertEqual (rs .interactions , brs .interactions )
488
487
@@ -492,11 +491,11 @@ def test_interactions_equality(self):
492
491
max_repetitions = 3 ))
493
492
@settings (max_examples = 50 , timeout = 0 )
494
493
def test_equality_with_round_robin (self , tournament ):
495
- tmp_file = tempfile . NamedTemporaryFile ( mode = 'w' , delete = False )
496
- tournament .play (filename = tmp_file . name , progress_bar = False ,
494
+ filename = "test_outputs/test_results.csv"
495
+ tournament .play (filename = filename , progress_bar = False ,
497
496
build_results = False )
498
- brs = axelrod .ResultSetFromFile (tmp_file . name , progress_bar = False )
499
- interactions = iu .read_interactions_from_file (tmp_file . name )
497
+ brs = axelrod .ResultSetFromFile (filename , progress_bar = False )
498
+ interactions = iu .read_interactions_from_file (filename )
500
499
rs = axelrod .ResultSet (tournament .players , interactions ,
501
500
progress_bar = False )
502
501
@@ -511,11 +510,11 @@ def test_equality_with_round_robin(self, tournament):
511
510
max_repetitions = 3 ))
512
511
@settings (max_examples = 50 , timeout = 0 )
513
512
def test_equality_with_prob_end (self , tournament ):
514
- tmp_file = tempfile . NamedTemporaryFile ( mode = 'w' , delete = False )
515
- tournament .play (filename = tmp_file . name , progress_bar = False ,
513
+ filename = "test_outputs/test_results.csv"
514
+ tournament .play (filename = filename , progress_bar = False ,
516
515
build_results = False )
517
- brs = axelrod .ResultSetFromFile (tmp_file . name , progress_bar = False )
518
- interactions = iu .read_interactions_from_file (tmp_file . name )
516
+ brs = axelrod .ResultSetFromFile (filename , progress_bar = False )
517
+ interactions = iu .read_interactions_from_file (filename )
519
518
rs = axelrod .ResultSet (tournament .players , interactions ,
520
519
progress_bar = False )
521
520
@@ -526,14 +525,14 @@ def test_equality_with_prob_end(self, tournament):
526
525
self .assertEqual (rs .cooperation , brs .cooperation )
527
526
528
527
def test_read_players_and_repetitions (self ):
529
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
528
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
530
529
players , nrepetitions = brs ._read_players_and_repetition_numbers ()
531
530
expected_players = ['Cooperator' , 'Tit For Tat' , 'Defector' ]
532
531
self .assertEqual (brs .players , expected_players )
533
532
self .assertEqual (nrepetitions , 3 )
534
533
535
534
def test_update_repetitions (self ):
536
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
535
+ brs = axelrod .ResultSetFromFile (filename = self .filename , progress_bar = False )
537
536
brs .repetitions_d = {}
538
537
brs ._update_repetitions ((0 , 0 ))
539
538
self .assertEqual (brs .repetitions_d , {(0 , 0 ): 1 })
@@ -543,7 +542,7 @@ def test_update_repetitions(self):
543
542
self .assertEqual (brs .repetitions_d , {(0 , 0 ): 2 , (0 , 1 ): 1 })
544
543
545
544
def test_build_repetitions (self ):
546
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
545
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
547
546
brs .repetitions_d = {}
548
547
brs ._update_repetitions ((0 , 0 ))
549
548
brs ._update_repetitions ((0 , 0 ))
@@ -552,7 +551,7 @@ def test_build_repetitions(self):
552
551
self .assertFalse (hasattr (brs , 'repetitions_d' ))
553
552
554
553
def test_update_players (self ):
555
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
554
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
556
555
brs .players_d = {}
557
556
brs ._update_players ((0 , 0 ), ('Cooperator' , 'Cooperator' ))
558
557
self .assertEqual (brs .players_d , {0 : 'Cooperator' })
@@ -562,7 +561,7 @@ def test_update_players(self):
562
561
self .assertEqual (brs .players_d , {0 : 'Cooperator' , 1 : 'Defector' })
563
562
564
563
def test_build_players (self ):
565
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
564
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
566
565
brs .players_d = {}
567
566
brs ._update_players ((0 , 0 ), ('Cooperator' , 'Cooperator' ))
568
567
brs ._update_players ((0 , 1 ), ('Cooperator' , 'Defector' ))
@@ -571,7 +570,7 @@ def test_build_players(self):
571
570
self .assertFalse (hasattr (brs , 'players_d' ))
572
571
573
572
def test_build_read_match_chunks (self ):
574
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
573
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
575
574
matches = brs .read_match_chunks ()
576
575
chunk = next (matches )
577
576
self .assertEqual (chunk [0 ], ['0' ] * 2 + ['Cooperator' ] * 2 + ['CC' ] * 2 )
@@ -580,7 +579,7 @@ def test_build_read_match_chunks(self):
580
579
self .assertEqual (len (list (matches )), 5 )
581
580
582
581
def test_build_all (self ):
583
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
582
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
584
583
rs = axelrod .ResultSet (self .players , self .interactions ,
585
584
progress_bar = False )
586
585
@@ -608,7 +607,7 @@ def test_buid_empty_metrics(self):
608
607
for player in plist ]
609
608
610
609
expected_good_partner_rating = [0 for player in plist ]
611
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
610
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
612
611
brs .match_lengths = []
613
612
brs .wins = []
614
613
brs .scores = []
0 commit comments