test_find_sequence   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 349
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 262
dl 0
loc 349
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A Tests.test_Extra() 0 3 2
A Tests.test_Basics() 0 3 2
1
import unittest
2
3
from find_sequence import checkio
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "Basics": [
9
            {
10
                "input": [[1, 2, 1, 1], [1, 1, 4, 1], [1, 3, 1, 6], [1, 7, 2, 5]],
11
                "answer": True,
12
                "explanation": [[0, 0], [1, 0], [2, 0], [3, 0]],
13
            },
14
            {
15
                "input": [[7, 1, 4, 1], [1, 2, 5, 2], [3, 4, 1, 3], [1, 1, 8, 1]],
16
                "answer": False,
17
                "explanation": [],
18
            },
19
            {
20
                "input": [
21
                    [2, 1, 1, 6, 1],
22
                    [1, 3, 2, 1, 1],
23
                    [4, 1, 1, 3, 1],
24
                    [5, 5, 5, 5, 5],
25
                    [1, 1, 3, 1, 1],
26
                ],
27
                "answer": True,
28
                "explanation": [[3, 0], [3, 1], [3, 2], [3, 3]],
29
            },
30
            {
31
                "input": [
32
                    [7, 1, 1, 8, 1, 1],
33
                    [1, 1, 7, 3, 1, 5],
34
                    [2, 3, 1, 2, 5, 1],
35
                    [1, 1, 1, 5, 1, 4],
36
                    [4, 6, 5, 1, 3, 1],
37
                    [1, 1, 9, 1, 2, 1],
38
                ],
39
                "answer": True,
40
                "explanation": [[1, 5], [2, 4], [3, 3], [4, 2]],
41
            },
42
            {
43
                "input": [
44
                    [2, 6, 2, 2, 7, 6, 5],
45
                    [3, 4, 8, 7, 7, 3, 6],
46
                    [6, 7, 3, 1, 2, 4, 1],
47
                    [2, 5, 7, 6, 3, 2, 2],
48
                    [3, 4, 3, 2, 7, 5, 6],
49
                    [8, 4, 6, 5, 2, 9, 7],
50
                    [5, 8, 3, 1, 3, 7, 8],
51
                ],
52
                "answer": False,
53
                "explanation": [],
54
            },
55
            {
56
                "input": [
57
                    [1, 7, 6, 1, 8, 5, 1],
58
                    [7, 9, 1, 7, 2, 8, 6],
59
                    [5, 1, 4, 5, 8, 8, 3],
60
                    [8, 6, 3, 9, 7, 6, 9],
61
                    [9, 8, 9, 8, 6, 8, 2],
62
                    [1, 7, 2, 4, 9, 3, 8],
63
                    [9, 9, 8, 6, 9, 2, 6],
64
                ],
65
                "answer": False,
66
                "explanation": [],
67
            },
68
            {
69
                "input": [
70
                    [6, 9, 1, 1, 6, 2],
71
                    [5, 9, 7, 8, 2, 5],
72
                    [2, 1, 1, 7, 9, 8],
73
                    [1, 8, 1, 4, 7, 4],
74
                    [7, 8, 5, 4, 5, 1],
75
                    [6, 4, 8, 8, 1, 8],
76
                ],
77
                "answer": False,
78
                "explanation": [],
79
            },
80
            {
81
                "input": [
82
                    [2, 7, 6, 2, 1, 5, 2, 8, 4, 4],
83
                    [8, 7, 5, 8, 9, 2, 8, 9, 5, 5],
84
                    [5, 7, 7, 7, 4, 1, 1, 2, 6, 8],
85
                    [4, 6, 6, 3, 2, 7, 6, 6, 5, 1],
86
                    [2, 6, 6, 9, 8, 5, 5, 6, 7, 7],
87
                    [9, 4, 1, 9, 1, 3, 7, 2, 3, 1],
88
                    [5, 1, 4, 3, 6, 5, 9, 3, 4, 1],
89
                    [6, 5, 5, 1, 7, 7, 8, 2, 1, 1],
90
                    [9, 5, 7, 8, 2, 9, 2, 6, 9, 3],
91
                    [8, 2, 5, 7, 3, 7, 3, 8, 6, 2],
92
                ],
93
                "answer": False,
94
                "explanation": [],
95
            },
96
            {
97
                "input": [
98
                    [1, 9, 7, 8, 9, 3, 6, 5, 6, 2],
99
                    [4, 9, 4, 8, 3, 4, 8, 8, 5, 9],
100
                    [2, 8, 5, 5, 7, 8, 6, 1, 3, 6],
101
                    [6, 4, 7, 6, 9, 1, 4, 5, 7, 8],
102
                    [4, 7, 7, 9, 8, 8, 8, 8, 4, 4],
103
                    [3, 7, 3, 2, 1, 9, 1, 8, 9, 1],
104
                    [4, 7, 2, 4, 8, 1, 2, 3, 6, 2],
105
                    [4, 4, 1, 3, 3, 3, 9, 2, 6, 7],
106
                    [8, 6, 1, 9, 3, 5, 8, 1, 7, 5],
107
                    [7, 3, 6, 5, 3, 6, 6, 4, 8, 2],
108
                ],
109
                "answer": True,
110
                "explanation": [[4, 4], [4, 5], [4, 6], [4, 7]],
111
            },
112
            {
113
                "input": [[1, 6, 1, 7], [4, 7, 3, 6], [3, 5, 7, 9], [8, 6, 6, 9]],
114
                "answer": False,
115
                "explanation": [],
116
            },
117
            {
118
                "input": [
119
                    [1, 2, 4, 6, 3],
120
                    [2, 5, 2, 6, 3],
121
                    [8, 7, 5, 9, 5],
122
                    [2, 1, 1, 4, 3],
123
                    [4, 2, 7, 5, 1],
124
                ],
125
                "answer": False,
126
                "explanation": [],
127
            },
128
            {
129
                "input": [
130
                    [2, 3, 6, 5, 6, 2, 8, 3, 7, 4],
131
                    [6, 9, 5, 9, 7, 6, 8, 5, 1, 6],
132
                    [6, 8, 2, 6, 1, 9, 3, 6, 6, 4],
133
                    [5, 8, 3, 2, 3, 8, 7, 4, 6, 4],
134
                    [2, 3, 1, 4, 5, 1, 2, 5, 6, 9],
135
                    [5, 4, 8, 7, 5, 5, 8, 4, 9, 5],
136
                    [9, 7, 9, 9, 5, 9, 9, 8, 1, 2],
137
                    [5, 1, 7, 4, 8, 3, 4, 1, 8, 8],
138
                    [5, 3, 3, 2, 6, 1, 4, 3, 8, 8],
139
                    [4, 8, 1, 4, 5, 8, 8, 7, 4, 7],
140
                ],
141
                "answer": True,
142
                "explanation": [[5, 6], [6, 7], [7, 8], [8, 9]],
143
            },
144
            {
145
                "input": [
146
                    [7, 7, 4, 4, 8],
147
                    [7, 4, 5, 5, 6],
148
                    [6, 6, 5, 2, 8],
149
                    [6, 2, 3, 8, 4],
150
                    [6, 1, 3, 1, 2],
151
                ],
152
                "answer": False,
153
                "explanation": [],
154
            },
155
            {
156
                "input": [
157
                    [7, 9, 1, 7, 6, 7, 5, 9, 6],
158
                    [5, 5, 9, 3, 1, 6, 7, 4, 7],
159
                    [1, 7, 5, 2, 3, 1, 6, 4, 7],
160
                    [2, 2, 2, 8, 7, 2, 6, 6, 9],
161
                    [5, 6, 4, 2, 6, 7, 3, 4, 7],
162
                    [5, 5, 6, 4, 9, 4, 3, 1, 7],
163
                    [7, 3, 2, 3, 2, 4, 4, 7, 3],
164
                    [3, 6, 9, 7, 2, 5, 6, 2, 5],
165
                    [4, 1, 3, 9, 4, 2, 4, 8, 4],
166
                ],
167
                "answer": True,
168
                "explanation": [[0, 4], [1, 5], [2, 6], [3, 7]],
169
            },
170
        ],
171
        "Extra": [
172
            {
173
                "input": [
174
                    [6, 6, 7, 4, 4, 6, 7, 9, 7, 9],
175
                    [4, 1, 8, 4, 7, 3, 5, 1, 1, 6],
176
                    [6, 1, 8, 8, 9, 3, 7, 6, 8, 9],
177
                    [8, 8, 7, 1, 6, 2, 1, 4, 1, 6],
178
                    [4, 4, 9, 9, 8, 8, 5, 4, 9, 8],
179
                    [5, 8, 1, 6, 8, 7, 1, 2, 9, 7],
180
                    [1, 8, 2, 7, 8, 9, 8, 1, 7, 1],
181
                    [7, 2, 7, 3, 7, 4, 3, 7, 1, 3],
182
                    [7, 3, 8, 7, 5, 2, 8, 9, 2, 2],
183
                    [5, 6, 4, 3, 1, 5, 5, 9, 2, 9],
184
                ],
185
                "answer": False,
186
                "explanation": [],
187
            },
188
            {
189
                "input": [
190
                    [1, 5, 6, 3, 7, 3, 2],
191
                    [2, 9, 1, 1, 5, 3, 8],
192
                    [3, 3, 3, 1, 1, 8, 9],
193
                    [4, 2, 1, 3, 2, 1, 4],
194
                    [1, 4, 5, 7, 1, 3, 6],
195
                    [4, 5, 8, 6, 1, 1, 2],
196
                    [3, 7, 1, 5, 7, 4, 7],
197
                ],
198
                "answer": False,
199
                "explanation": [],
200
            },
201
            {
202
                "input": [
203
                    [4, 7, 8, 2, 8, 9],
204
                    [2, 1, 8, 4, 4, 8],
205
                    [3, 9, 6, 4, 5, 6],
206
                    [5, 8, 8, 7, 1, 4],
207
                    [1, 6, 1, 5, 2, 1],
208
                    [7, 5, 7, 2, 8, 7],
209
                ],
210
                "answer": False,
211
                "explanation": [],
212
            },
213
            {
214
                "input": [[1, 5, 4, 4], [2, 2, 4, 1], [1, 4, 3, 5], [4, 3, 3, 2]],
215
                "answer": True,
216
                "explanation": [[0, 3], [1, 2], [2, 1], [3, 0]],
217
            },
218
            {
219
                "input": [
220
                    [2, 8, 4, 9, 4, 8, 8, 7],
221
                    [5, 2, 6, 9, 2, 2, 9, 3],
222
                    [7, 8, 6, 9, 5, 9, 6, 9],
223
                    [2, 2, 4, 6, 4, 2, 3, 1],
224
                    [8, 7, 2, 6, 3, 1, 9, 4],
225
                    [8, 6, 9, 6, 1, 5, 5, 6],
226
                    [8, 7, 2, 7, 8, 5, 1, 7],
227
                    [5, 1, 7, 9, 6, 2, 7, 6],
228
                ],
229
                "answer": False,
230
                "explanation": [],
231
            },
232
            {
233
                "input": [[7, 7, 1, 3], [6, 4, 8, 5], [7, 4, 6, 7], [6, 4, 4, 4]],
234
                "answer": False,
235
                "explanation": [],
236
            },
237
            {
238
                "input": [[2, 8, 7, 2], [7, 7, 6, 7], [2, 8, 2, 1], [8, 2, 5, 2]],
239
                "answer": False,
240
                "explanation": [],
241
            },
242
            {
243
                "input": [
244
                    [2, 6, 2, 3, 5, 2, 4, 8, 7],
245
                    [5, 7, 8, 5, 9, 5, 7, 3, 4],
246
                    [6, 4, 1, 2, 1, 6, 5, 8, 5],
247
                    [9, 3, 1, 3, 5, 4, 6, 4, 8],
248
                    [9, 6, 6, 8, 1, 9, 1, 2, 1],
249
                    [5, 5, 5, 8, 6, 5, 3, 2, 5],
250
                    [7, 5, 2, 9, 2, 9, 8, 2, 5],
251
                    [5, 8, 1, 9, 1, 2, 6, 2, 2],
252
                    [7, 5, 3, 6, 1, 6, 9, 5, 9],
253
                ],
254
                "answer": True,
255
                "explanation": [[4, 7], [5, 7], [6, 7], [7, 7]],
256
            },
257
            {
258
                "input": [
259
                    [1, 1, 2, 4, 6, 4, 1, 4],
260
                    [3, 3, 4, 9, 9, 1, 9, 9],
261
                    [2, 6, 7, 2, 7, 8, 8, 8],
262
                    [5, 7, 8, 6, 5, 6, 3, 1],
263
                    [7, 7, 4, 4, 1, 7, 8, 1],
264
                    [2, 5, 7, 9, 7, 5, 8, 6],
265
                    [1, 5, 3, 7, 2, 1, 6, 3],
266
                    [1, 1, 3, 7, 7, 4, 9, 7],
267
                ],
268
                "answer": True,
269
                "explanation": [[4, 1], [5, 2], [6, 3], [7, 4]],
270
            },
271
            {
272
                "input": [
273
                    [5, 2, 1, 4, 8, 3, 6],
274
                    [3, 9, 7, 8, 6, 2, 5],
275
                    [2, 8, 8, 4, 2, 5, 1],
276
                    [5, 3, 9, 9, 5, 6, 3],
277
                    [6, 2, 1, 4, 5, 8, 6],
278
                    [2, 3, 2, 7, 5, 7, 4],
279
                    [1, 6, 5, 1, 5, 2, 3],
280
                ],
281
                "answer": True,
282
                "explanation": [[3, 4], [4, 4], [5, 4], [6, 4]],
283
            },
284
            {
285
                "input": [[2, 4, 1, 7], [1, 2, 4, 1], [9, 4, 2, 1], [5, 9, 2, 2]],
286
                "answer": True,
287
                "explanation": [[0, 0], [1, 1], [2, 2], [3, 3]],
288
            },
289
            {
290
                "input": [
291
                    [3, 2, 9, 9, 2, 7, 6, 3],
292
                    [4, 8, 9, 9, 9, 9, 3, 3],
293
                    [9, 6, 7, 5, 9, 9, 4, 2],
294
                    [1, 5, 9, 9, 6, 7, 8, 2],
295
                    [9, 9, 3, 4, 8, 9, 8, 1],
296
                    [4, 1, 8, 5, 5, 7, 8, 9],
297
                    [6, 5, 6, 3, 4, 3, 1, 6],
298
                    [4, 4, 5, 3, 9, 4, 4, 3],
299
                ],
300
                "answer": True,
301
                "explanation": [[1, 2], [1, 3], [1, 4], [1, 5]],
302
            },
303
            {
304
                "input": [
305
                    [1, 1, 7, 2, 8, 1, 9, 2, 6, 2],
306
                    [3, 7, 6, 6, 7, 4, 7, 5, 3, 7],
307
                    [2, 4, 8, 5, 3, 9, 4, 9, 4, 4],
308
                    [3, 1, 4, 9, 8, 9, 5, 3, 6, 8],
309
                    [4, 5, 6, 4, 7, 3, 9, 9, 9, 9],
310
                    [7, 7, 6, 4, 8, 9, 2, 3, 5, 7],
311
                    [9, 1, 2, 1, 1, 7, 9, 2, 6, 5],
312
                    [5, 7, 6, 9, 5, 3, 5, 4, 1, 9],
313
                    [5, 4, 7, 8, 9, 3, 1, 4, 5, 1],
314
                    [9, 5, 7, 9, 4, 7, 9, 5, 8, 8],
315
                ],
316
                "answer": True,
317
                "explanation": [[4, 6], [4, 7], [4, 8], [4, 9]],
318
            },
319
            {
320
                "input": [
321
                    [1, 1, 7, 2, 8, 1, 9, 2, 6, 2],
322
                    [3, 7, 6, 6, 7, 4, 7, 5, 3, 7],
323
                    [2, 4, 8, 5, 3, 9, 4, 9, 4, 4],
324
                    [3, 1, 4, 9, 8, 9, 5, 3, 6, 8],
325
                    [4, 5, 6, 4, 7, 3, 9, 1, 9, 9],
326
                    [7, 7, 6, 4, 8, 9, 2, 3, 5, 7],
327
                    [9, 1, 2, 1, 1, 7, 9, 2, 6, 4],
328
                    [5, 7, 6, 9, 5, 3, 5, 4, 4, 9],
329
                    [5, 4, 7, 8, 9, 3, 1, 4, 5, 1],
330
                    [9, 5, 7, 9, 4, 7, 4, 5, 8, 8],
331
                ],
332
                "answer": True,
333
                "explanation": [[9, 6], [8, 7], [7, 8], [6, 9]],
334
            },
335
        ],
336
    }
337
338
    def test_Basics(self):
339
        for i in self.TESTS['Basics']:
340
            assert checkio(i['input']) == i['answer'], i['input']
341
342
    def test_Extra(self):
343
        for i in self.TESTS['Extra']:
344
            assert checkio(i['input']) == i['answer'], i['input']
345
346
347
if __name__ == "__main__":  # pragma: no cover
348
    unittest.main()
349