-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtests.py
131 lines (105 loc) · 3.83 KB
/
tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import pytest
from Quackle import QuackleGame, Player, Move
class TestQuackleGame:
def test_init(self):
game = QuackleGame("fixtures/test1.gcg")
assert type(game) == QuackleGame
assert game.player1.name == "New_Player_1"
assert game.player2.name == "Quackle"
with pytest.raises(Exception) as e:
game = QuackleGame("fixtures/bad_files/unfinished_game.gcg")
def test_is_finished_game(self):
finished_game = "fixtures/test1.gcg"
unfinished_game = "fixtures/bad_files/unfinished_game.gcg"
assert QuackleGame.is_finished_game(finished_game)
assert not QuackleGame.is_finished_game(unfinished_game)
def test_to_dict(self):
game = QuackleGame("fixtures/test1.gcg")
game_dict = game.to_dict()
assert game_dict["filename"] == "test1.gcg"
assert game_dict["score_1"] == 520
assert game_dict["score_2"] == 386
assert game_dict["bingo_1"] == 4
assert game_dict["bingo_2"] == 2
assert game_dict["percent_dif"] == 29.58057395143488
class TestPlayer:
def test_init(self):
name = "Player_1"
player1 = Player(name)
assert player1.name == name
def test_score(self):
game = QuackleGame("fixtures/test2.gcg")
assert game.player1.score == 409
assert game.player2.score == 391
def test_bingo_count(self):
game = QuackleGame("fixtures/test2.gcg")
assert game.player1.bingo_count == 3
assert game.player2.bingo_count == 2
class TestMove:
def test_init(self):
line = ">New_Player_1: AEFINUW 9C WIFE +25 25"
move = Move(line)
assert move.player == "New_Player_1"
assert move.rack == "AEFINUW"
assert move.location == "9C"
assert move.word == "WIFE"
assert move.points_earned == 25
assert move.current_score == 25
# Test line at the end of game
line = ">Quackle: (ACI) +8 543"
move = Move(line)
assert move.player == "Quackle"
assert move.rack == ""
assert move.location == ""
assert move.word == "(ACI)"
assert move.points_earned == 8
assert move.current_score == 543
# Test exchanged tiles
line = ">New_Player_1: EIOOSUU -IOOUU +0 65"
move = Move(line)
assert move.player == "New_Player_1"
assert move.rack == "EIOOSUU"
assert move.location == ""
assert move.word == "-IOOUU"
assert move.points_earned == 0
assert move.current_score == 65
assert not move.is_pass
# Test passes
line = ">Quackle: V - +0 254"
move = Move(line)
assert move.player == "Quackle"
assert move.rack == "V"
assert move.location == "-"
assert move.word == ""
assert move.points_earned == 0
assert move.current_score == 254
assert move.is_pass
def test_is_bingo(self):
game = QuackleGame("fixtures/test1.gcg")
line = ">Quackle: ?EINRTT H8 .NTeRTIE +74 115"
move = Move(line)
assert move.is_bingo
line = ">New_Player_1: DEGIINS 12C .I +22 348"
move = Move(line)
assert not move.is_bingo
def test_is_final_move(self):
line = ">New_Player_1: (G) +4 520"
move = Move(line)
assert move.is_final_move
line = ">New_Player_1: DEGIINS 12C .I +22 348"
move = Move(line)
assert not move.is_final_move
def test_no_location(self):
line = ">New_Player_1: DEGIINS 12C .I +22 348"
move = Move(line)
assert not move.no_location
line = ">New_Player_1: EIOOSUU -IOOUU +0 65"
move = Move(line)
assert move.no_location
def test_safe_int(self):
pass
class TestCli:
def test_clean(self):
pass
def test_generate_csvs(self):
pass