Test Setup Failed
Push — master ( bcc19d...7c88b6 )
by Ken M.
01:10
created

Tests.test_Basics()   A

Complexity

Conditions 3

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 10
Bugs 0 Features 1
Metric Value
cc 3
c 10
b 0
f 1
dl 0
loc 3
rs 10
1
import unittest
2
3
from x_o_referee import checkio
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "1. Basics": [
9
            {
10
                "input": ["X.O",
11
                          "XX.",
12
                          "XOO"],
13
                "answer": "X",
14
                "explanation": [1, [0, 0.5], [3, 0.5]]
15
            },
16
            {
17
                "input": ["OO.",
18
                          "XOX",
19
                          "XOX"],
20
                "answer": "O",
21
                "explanation": [0, [0, 1.5], [3, 1.5]]
22
            },
23
            {
24
                "input": ["OOX",
25
                          "XXO",
26
                          "OXX"],
27
                "answer": "D",
28
                "explanation": []
29
            },
30
            {
31
                "input": ["O.X",
32
                          "XX.",
33
                          "XOO"],
34
                "answer": "X",
35
                "explanation": [1, [3, 0], [0, 3]]
36
            },
37
        ],
38
        "2. Extra": [
39
            {
40
                "input": ["OOO",
41
                          "XX.",
42
                          ".XX"],
43
                "answer": "O",
44
                "explanation": [0, [0.5, 0], [0.5, 3]]
45
            },
46
            {
47
                "input": ["OXO",
48
                          "XOX",
49
                          "OXO"],
50
                "answer": "O",
51
                "explanation": [0, [0, 0], [3, 3]]
52
            },
53
            {
54
                "input": ["XOX",
55
                          "OXO",
56
                          "XOX"],
57
                "answer": "X",
58
                "explanation": [1, [3, 0], [0, 3]]
59
            },
60
            {
61
                "input": ["OXO",
62
                          "XXO",
63
                          "XOX"],
64
                "answer": "D",
65
                "explanation": []
66
            },
67
            {
68
                "input": [".O.",
69
                          "XXX",
70
                          ".O."],
71
                "answer": "X",
72
                "explanation": [1, [1.5, 0], [1.5, 3]]
73
            },
74
            {
75
                "input": ['...',
76
                          'XXX',
77
                          'OO.'],
78
                "answer": "X",
79
                "explanation": [1, [1.5, 0], [1.5, 3]]
80
            },
81
        ],
82
        "3. Extra": [
83
            {
84
                "input": ['OOO',
85
                          'X.X',
86
                          '.X.'],
87
                "answer": "O",
88
                "explanation": [0, [0.5, 0], [0.5, 3]]
89
            },
90
            {
91
                "input": ['O..',
92
                          'XOX',
93
                          '..O'],
94
                "answer": "O",
95
                "explanation": [0, [0, 0], [3, 3]]
96
            },
97
            {
98
                "input": ['..O',
99
                          'XOX',
100
                          'O..'],
101
                "answer": "O",
102
                "explanation": [0, [0, 3], [3, 0]]
103
            },
104
            {
105
                "input": ['.XO',
106
                          'X.X',
107
                          'OOO'],
108
                "answer": "O",
109
                "explanation": [0, [2.5, 0], [2.5, 3]]
110
            },
111
            {
112
                "input": ['.XO',
113
                          'X.X',
114
                          'O.O'],
115
                "answer": "D",
116
                "explanation": []
117
            },
118
            {
119
                "input": [".OX",
120
                          ".XX",
121
                          ".OO"],
122
                "answer": "D",
123
                "explanation": []
124
            },
125
            {
126
                "input": ["...",
127
                          ".X.",
128
                          "..."],
129
                "answer": "D",
130
                "explanation": []
131
            },
132
            {
133
                "input": [".O.",
134
                          ".X.",
135
                          "..."],
136
                "answer": "D",
137
                "explanation": []
138
            },
139
            {
140
                "input": [".O.",
141
                          "...",
142
                          "..."],
143
                "answer": "D",
144
                "explanation": []
145
            },
146
            {
147
                "input": [".OX",
148
                          "..X",
149
                          ".OX"],
150
                "answer": "X",
151
                "explanation": [1, [0, 2.5], [3, 2.5]]
152
            },
153
        ]
154
    }
155
156
    def test_Basics(self):
157
        for i in self.TESTS['1. Basics']:
158
            assert checkio(i['input']) == i['answer'], i['input']
159
160
    def test_2Extra(self):
161
        for i in self.TESTS['2. Extra']:
162
            assert checkio(i['input']) == i['answer'], i['input']
163
164
    def test_3Extra(self):
165
        for i in self.TESTS['3. Extra']:
166
            assert checkio(i['input']) == i['answer'], i['input']
167
168
169
if __name__ == "__main__":  # pragma: no cover
170
    unittest.main()
171