Passed
Push — master ( a892fa...d1ecba )
by Ken M.
01:03
created

test_index_power   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 143
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 73
dl 0
loc 143
rs 10
c 0
b 0
f 0
wmc 4
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