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_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_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,12 +475,12 @@ 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 ,
483
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False ,
485
484
keep_interactions = True )
486
485
rs = axelrod .ResultSet (self .players , self .interactions , progress_bar = False )
487
486
self .assertEqual (rs .interactions , brs .interactions )
@@ -491,11 +490,11 @@ def test_interactions_equality(self):
491
490
max_repetitions = 3 ))
492
491
@settings (max_examples = 50 , timeout = 0 )
493
492
def test_equality_with_round_robin (self , tournament ):
494
- tmp_file = tempfile . NamedTemporaryFile ( mode = 'w' , delete = False )
495
- tournament .play (filename = tmp_file . name , progress_bar = False ,
493
+ filename = "test_results.csv"
494
+ tournament .play (filename = filename , progress_bar = False ,
496
495
build_results = False )
497
- brs = axelrod .ResultSetFromFile (tmp_file . name , progress_bar = False )
498
- interactions = iu .read_interactions_from_file (tmp_file . name )
496
+ brs = axelrod .ResultSetFromFile (filename , progress_bar = False )
497
+ interactions = iu .read_interactions_from_file (filename )
499
498
rs = axelrod .ResultSet (tournament .players , interactions ,
500
499
progress_bar = False )
501
500
@@ -510,11 +509,11 @@ def test_equality_with_round_robin(self, tournament):
510
509
max_repetitions = 3 ))
511
510
@settings (max_examples = 50 , timeout = 0 )
512
511
def test_equality_with_prob_end (self , tournament ):
513
- tmp_file = tempfile . NamedTemporaryFile ( mode = 'w' , delete = False )
514
- tournament .play (filename = tmp_file . name , progress_bar = False ,
512
+ filename = "test_results.csv"
513
+ tournament .play (filename = filename , progress_bar = False ,
515
514
build_results = False )
516
- brs = axelrod .ResultSetFromFile (tmp_file . name , progress_bar = False )
517
- interactions = iu .read_interactions_from_file (tmp_file . name )
515
+ brs = axelrod .ResultSetFromFile (filename , progress_bar = False )
516
+ interactions = iu .read_interactions_from_file (filename )
518
517
rs = axelrod .ResultSet (tournament .players , interactions ,
519
518
progress_bar = False )
520
519
@@ -525,14 +524,14 @@ def test_equality_with_prob_end(self, tournament):
525
524
self .assertEqual (rs .cooperation , brs .cooperation )
526
525
527
526
def test_read_players_and_repetitions (self ):
528
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
527
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
529
528
players , nrepetitions = brs ._read_players_and_repetition_numbers ()
530
529
expected_players = ['Cooperator' , 'Tit For Tat' , 'Defector' ]
531
530
self .assertEqual (brs .players , expected_players )
532
531
self .assertEqual (nrepetitions , 3 )
533
532
534
533
def test_update_repetitions (self ):
535
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
534
+ brs = axelrod .ResultSetFromFile (filename = self .filename , progress_bar = False )
536
535
brs .repetitions_d = {}
537
536
brs ._update_repetitions ((0 , 0 ))
538
537
self .assertEqual (brs .repetitions_d , {(0 , 0 ): 1 })
@@ -542,7 +541,7 @@ def test_update_repetitions(self):
542
541
self .assertEqual (brs .repetitions_d , {(0 , 0 ): 2 , (0 , 1 ): 1 })
543
542
544
543
def test_build_repetitions (self ):
545
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
544
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
546
545
brs .repetitions_d = {}
547
546
brs ._update_repetitions ((0 , 0 ))
548
547
brs ._update_repetitions ((0 , 0 ))
@@ -551,7 +550,7 @@ def test_build_repetitions(self):
551
550
self .assertFalse (hasattr (brs , 'repetitions_d' ))
552
551
553
552
def test_update_players (self ):
554
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
553
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
555
554
brs .players_d = {}
556
555
brs ._update_players ((0 , 0 ), ('Cooperator' , 'Cooperator' ))
557
556
self .assertEqual (brs .players_d , {0 : 'Cooperator' })
@@ -561,7 +560,7 @@ def test_update_players(self):
561
560
self .assertEqual (brs .players_d , {0 : 'Cooperator' , 1 : 'Defector' })
562
561
563
562
def test_build_players (self ):
564
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
563
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
565
564
brs .players_d = {}
566
565
brs ._update_players ((0 , 0 ), ('Cooperator' , 'Cooperator' ))
567
566
brs ._update_players ((0 , 1 ), ('Cooperator' , 'Defector' ))
@@ -570,7 +569,7 @@ def test_build_players(self):
570
569
self .assertFalse (hasattr (brs , 'players_d' ))
571
570
572
571
def test_build_read_match_chunks (self ):
573
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
572
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
574
573
matches = brs .read_match_chunks ()
575
574
chunk = next (matches )
576
575
self .assertEqual (chunk [0 ], ['0' ] * 2 + ['Cooperator' ] * 2 + ['CC' ] * 2 )
@@ -579,7 +578,7 @@ def test_build_read_match_chunks(self):
579
578
self .assertEqual (len (list (matches )), 5 )
580
579
581
580
def test_build_all (self ):
582
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
581
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
583
582
rs = axelrod .ResultSet (self .players , self .interactions ,
584
583
progress_bar = False )
585
584
@@ -607,7 +606,7 @@ def test_buid_empty_metrics(self):
607
606
for player in plist ]
608
607
609
608
expected_good_partner_rating = [0 for player in plist ]
610
- brs = axelrod .ResultSetFromFile (self .tmp_file . name , progress_bar = False )
609
+ brs = axelrod .ResultSetFromFile (self .filename , progress_bar = False )
611
610
brs .match_lengths = []
612
611
brs .wins = []
613
612
brs .scores = []
0 commit comments