for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
import unittest
from count_inversions import count_inversion
class Tests(unittest.TestCase):
TESTS = {
"Basics": [
{"input": (1, 2, 5, 3, 4, 7, 6), "answer": 3},
{"input": (0, 1, 2, 3), "answer": 0},
{"input": (99, -99), "answer": 1},
{"input": (5, 3, 2, 1, 0), "answer": 10},
],
"Extra": [
{
"input": (
-99,
-98,
-97,
-96,
-95,
-94,
-93,
-92,
-91,
-90,
-89,
-88,
-87,
-86,
-85,
-84,
-83,
-82,
-81,
-80,
-79,
-78,
-77,
-76,
-75,
-74,
-73,
-72,
-71,
-70,
-69,
-68,
-67,
-66,
-65,
-64,
-63,
-62,
-61,
-60,
-59,
-58,
-57,
-56,
-55,
-54,
-53,
-52,
-51,
-50,
-49,
-48,
-47,
-46,
-45,
-44,
-43,
-42,
-41,
-40,
-39,
-38,
-37,
-36,
-35,
-34,
-33,
-32,
-31,
-30,
-29,
-28,
-27,
-26,
-25,
-24,
-23,
-22,
-21,
-20,
-19,
-18,
-17,
-16,
-15,
-14,
-13,
-12,
-11,
-10,
-9,
-8,
-7,
-6,
-5,
-4,
-3,
-2,
-1,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
),
"answer": 0,
},
"answer": 19701,
{"input": (0, 1), "answer": 0},
{"input": (1, 0), "answer": 1},
"answer": 4181,
"answer": 8469,
"answer": 9272,
"answer": 7206,
"answer": 466,
"answer": 3812,
}
def test_Basics(self):
for i in self.TESTS['Basics']:
assert count_inversion(i['input']) == i['answer']
def test_Extra(self):
for i in self.TESTS['Extra']:
if __name__ == "__main__": # pragma: no cover
unittest.main()