|
1
|
|
|
import unittest |
|
2
|
|
|
|
|
3
|
|
|
from hexagon_spiral import hex_spiral |
|
4
|
|
|
|
|
5
|
|
|
|
|
6
|
|
|
class Tests(unittest.TestCase): |
|
7
|
|
|
TESTS = { |
|
8
|
|
|
"Basics": [ |
|
9
|
|
|
{"input": [2, 9], "answer": 1, "explanation": 2}, |
|
10
|
|
|
{"input": [9, 2], "answer": 1, "explanation": 2}, |
|
11
|
|
|
{"input": [6, 19], "answer": 2, "explanation": 7}, |
|
12
|
|
|
{"input": [5, 11], "answer": 3, "explanation": 1}, |
|
13
|
|
|
{"input": [13, 15], "answer": 2, "explanation": 14}, |
|
14
|
|
|
{"input": [11, 17], "answer": 4, "explanation": 1}, |
|
15
|
|
|
{"input": [6, 4], "answer": 2, "explanation": 1}, |
|
16
|
|
|
{"input": [42, 13], "answer": 5, "explanation": 4}, |
|
17
|
|
|
{"input": [66, 81], "answer": 10, "explanation": 1}, |
|
18
|
|
|
{"input": [76, 65], "answer": 10, "explanation": 7}, |
|
19
|
|
|
{"input": [84, 78], "answer": 6, "explanation": 15}, |
|
20
|
|
|
{"input": [92, 62], "answer": 1, "explanation": 0}, |
|
21
|
|
|
{"input": [100, 1], "answer": 6, "explanation": 0}, |
|
22
|
|
|
{"input": [200, 202], "answer": 2, "explanation": 0}, |
|
23
|
|
|
], |
|
24
|
|
|
"Extra": [ |
|
25
|
|
|
{"input": [2, 8], "answer": 1, "explanation": 0}, |
|
26
|
|
|
{"input": [9, 1], "answer": 2, "explanation": 2}, |
|
27
|
|
|
{"input": [16, 19], "answer": 3, "explanation": 7}, |
|
28
|
|
|
{"input": [55, 11], "answer": 6, "explanation": 17}, |
|
29
|
|
|
{"input": [11, 15], "answer": 4, "explanation": 1}, |
|
30
|
|
|
{"input": [21, 17], "answer": 4, "explanation": 6}, |
|
31
|
|
|
{"input": [41, 13], "answer": 6, "explanation": 1}, |
|
32
|
|
|
{"input": [77, 81], "answer": 4, "explanation": 79}, |
|
33
|
|
|
{"input": [55, 65], "answer": 8, "explanation": 32}, |
|
34
|
|
|
{"input": [92, 32], "answer": 8, "explanation": 0}, |
|
35
|
|
|
{"input": [101, 1], "answer": 6, "explanation": 0}, |
|
36
|
|
|
{"input": [300, 302], "answer": 2, "explanation": 0}, |
|
37
|
|
|
{"input": [999, 998], "answer": 1, "explanation": 0}, |
|
38
|
|
|
{"input": [84, 68], "answer": 10, "explanation": 37}, |
|
39
|
|
|
], |
|
40
|
|
|
} |
|
41
|
|
|
|
|
42
|
|
|
def test_Basics(self): |
|
43
|
|
|
for i in self.TESTS['Basics']: |
|
44
|
|
|
assert hex_spiral(*i['input']) == i['answer'] |
|
45
|
|
|
|
|
46
|
|
|
def test_Extra(self): |
|
47
|
|
|
for i in self.TESTS['Extra']: |
|
48
|
|
|
assert hex_spiral(*i['input']) == i['answer'] |
|
49
|
|
|
|