test_can_pass.Tests.test_Edge()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

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