|
1
|
|
|
import unittest |
|
2
|
|
|
|
|
3
|
|
|
from index_power import index_power |
|
4
|
|
|
|
|
5
|
|
|
|
|
6
|
|
|
class Tests(unittest.TestCase): |
|
7
|
|
|
TESTS = { |
|
8
|
|
|
"Basics": [ |
|
9
|
|
|
{"input": ([1, 2, 3, 4], 2), "answer": 9}, |
|
10
|
|
|
{"input": ([1, 3, 10, 100], 3), "answer": 1_000_000}, |
|
11
|
|
|
{"input": ([0, 1], 0), "answer": 1}, |
|
12
|
|
|
{"input": ([1, 2], 3), "answer": -1}, |
|
13
|
|
|
], |
|
14
|
|
|
"Extra": [ |
|
15
|
|
|
{"input": ([0], 0), "answer": 1}, |
|
16
|
|
|
{"input": ([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 9), "answer": 1}, |
|
17
|
|
|
{ |
|
18
|
|
|
"input": ([1, 1, 1, 1, 1, 1, 1, 1, 1, 100], 9), |
|
19
|
|
|
"answer": 1_000_000_000_000_000_000, |
|
20
|
|
|
}, |
|
21
|
|
|
{"input": ([29, 82, 45, 10], 3), "answer": 1000}, |
|
22
|
|
|
{"input": ([6, 31], 3), "answer": -1}, |
|
23
|
|
|
{"input": ([75, 68, 35, 61, 9, 36, 89, 0, 30], 10), "answer": -1}, |
|
24
|
|
|
{"input": ([29, 44, 50, 92, 56, 86], 2), "answer": 2500}, |
|
25
|
|
|
{"input": ([86, 41, 89, 53, 16, 15, 31, 63, 40], 6), "answer": 887_503_681}, |
|
26
|
|
|
{ |
|
27
|
|
|
"input": ([73, 26, 11, 3, 74, 94, 10, 10, 81, 63], 4), |
|
28
|
|
|
"answer": 29_986_576, |
|
29
|
|
|
}, |
|
30
|
|
|
{"input": ([96, 92, 94], 3), "answer": -1}, |
|
31
|
|
|
{"input": ([42, 69, 86, 55, 30, 35, 28, 84, 61, 40], 17), "answer": -1}, |
|
32
|
|
|
{"input": ([7, 36, 82, 38, 50, 47, 62, 44], 6), "answer": 56_800_235_584}, |
|
33
|
|
|
{ |
|
34
|
|
|
"input": ([68, 81, 3, 10, 96, 67, 55, 83, 63, 11], 9), |
|
35
|
|
|
"answer": 2_357_947_691, |
|
36
|
|
|
}, |
|
37
|
|
|
{"input": ([47, 77, 80, 48, 40, 21, 65], 1), "answer": 77}, |
|
38
|
|
|
{"input": ([28, 30, 48, 89, 31, 66], 4), "answer": 923_521}, |
|
39
|
|
|
{"input": ([71, 53, 51, 75, 16, 33, 88, 5], 3), "answer": 421_875}, |
|
40
|
|
|
{"input": ([74, 40, 3, 90, 17, 62, 14], 0), "answer": 1}, |
|
41
|
|
|
{"input": ([23, 61, 56, 93], 0), "answer": 1}, |
|
42
|
|
|
{"input": ([31, 53, 11, 79, 3, 95, 40, 2], 4), "answer": 81}, |
|
43
|
|
|
{"input": ([43, 61, 8, 12, 31, 10, 34, 52], 5), "answer": 100_000}, |
|
44
|
|
|
{"input": ([32, 25, 93, 1], 2), "answer": 8649}, |
|
45
|
|
|
{"input": ([2, 56, 73, 54, 88], 4), "answer": 59_969_536}, |
|
46
|
|
|
{ |
|
47
|
|
|
"input": ([65, 18, 93, 94, 36, 21, 65, 95, 30, 43], 6), |
|
48
|
|
|
"answer": 75_418_890_625, |
|
49
|
|
|
}, |
|
50
|
|
|
{ |
|
51
|
|
|
"input": ([79, 70, 88, 19, 12, 92, 27, 52, 48], 5), |
|
52
|
|
|
"answer": 6_590_815_232, |
|
53
|
|
|
}, |
|
54
|
|
|
{"input": ([72, 3, 8, 25, 15, 16], 1), "answer": 3}, |
|
55
|
|
|
], |
|
56
|
|
|
} |
|
57
|
|
|
|
|
58
|
|
|
def test_Basics(self): |
|
59
|
|
|
for i in self.TESTS['Basics']: |
|
60
|
|
|
assert index_power(*i['input']) == i['answer'], i['input'] |
|
61
|
|
|
|
|
62
|
|
|
def test_Extra(self): |
|
63
|
|
|
for i in self.TESTS['Extra']: |
|
64
|
|
|
assert index_power(*i['input']) == i['answer'], i['input'] |
|
65
|
|
|
|
|
66
|
|
|
|
|
67
|
|
|
if __name__ == "__main__": # pragma: no cover |
|
68
|
|
|
unittest.main() |
|
69
|
|
|
|