-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathconnect_test.py
112 lines (99 loc) · 3.07 KB
/
connect_test.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
# These tests are auto-generated with test data from:
# https://github.com/exercism/problem-specifications/tree/main/exercises/connect/canonical-data.json
# File last updated on 2023-07-19
import unittest
from connect import (
ConnectGame,
)
class ConnectTest(unittest.TestCase):
def test_an_empty_board_has_no_winner(self):
game = ConnectGame(
""". . . . .
. . . . .
. . . . .
. . . . .
. . . . ."""
)
winner = game.get_winner()
self.assertEqual(winner, "")
def test_x_can_win_on_a_1x1_board(self):
game = ConnectGame("""X""")
winner = game.get_winner()
self.assertEqual(winner, "X")
def test_o_can_win_on_a_1x1_board(self):
game = ConnectGame("""O""")
winner = game.get_winner()
self.assertEqual(winner, "O")
def test_only_edges_does_not_make_a_winner(self):
game = ConnectGame(
"""O O O X
X . . X
X . . X
X O O O"""
)
winner = game.get_winner()
self.assertEqual(winner, "")
def test_illegal_diagonal_does_not_make_a_winner(self):
game = ConnectGame(
"""X O . .
O X X X
O X O .
. O X .
X X O O"""
)
winner = game.get_winner()
self.assertEqual(winner, "")
def test_nobody_wins_crossing_adjacent_angles(self):
game = ConnectGame(
"""X . . .
. X O .
O . X O
. O . X
. . O ."""
)
winner = game.get_winner()
self.assertEqual(winner, "")
def test_x_wins_crossing_from_left_to_right(self):
game = ConnectGame(
""". O . .
O X X X
O X O .
X X O X
. O X ."""
)
winner = game.get_winner()
self.assertEqual(winner, "X")
def test_o_wins_crossing_from_top_to_bottom(self):
game = ConnectGame(
""". O . .
O X X X
O O O .
X X O X
. O X ."""
)
winner = game.get_winner()
self.assertEqual(winner, "O")
def test_x_wins_using_a_convoluted_path(self):
game = ConnectGame(
""". X X . .
X . X . X
. X . X .
. X X . .
O O O O O"""
)
winner = game.get_winner()
self.assertEqual(winner, "X")
def test_x_wins_using_a_spiral_path(self):
game = ConnectGame(
"""O X X X X X X X X
O X O O O O O O O
O X O X X X X X O
O X O X O O O X O
O X O X X X O X O
O X O O O X O X O
O X X X X X O X O
O O O O O O O X O
X X X X X X X X O"""
)
winner = game.get_winner()
self.assertEqual(winner, "X")