|
1
|
|
|
import unittest |
|
2
|
|
|
|
|
3
|
|
|
from min_max import max, min # noqa |
|
4
|
|
|
|
|
5
|
|
|
|
|
6
|
|
|
class Tests(unittest.TestCase): |
|
7
|
|
|
TESTS = { |
|
8
|
|
|
"1. Basics": [ |
|
9
|
|
|
{'input': "max(3, 2)", 'answer': 3}, |
|
10
|
|
|
{'input': "min(3, 2)", 'answer': 2}, |
|
11
|
|
|
{'input': "max([1, 2, 0, 3, 4])", 'answer': 4}, |
|
12
|
|
|
{'input': "min('hello')", 'answer': "e"}, |
|
13
|
|
|
{'input': "max(2.2, 5.6, 5.9, key=int)", 'answer': 5.6}, |
|
14
|
|
|
{ |
|
15
|
|
|
'input': "min([[1, 2], [3, 4], [9, 0]], key=lambda x: x[1])", |
|
16
|
|
|
'answer': [9, 0], |
|
17
|
|
|
}, |
|
18
|
|
|
], |
|
19
|
|
|
"Extra": [ |
|
20
|
|
|
{'input': "max([0])", 'answer': 0}, |
|
21
|
|
|
{'input': "min((9,))", 'answer': 9}, |
|
22
|
|
|
{'input': "max(range(6))", 'answer': 5}, |
|
23
|
|
|
{'input': "min(abs(i) for i in range(-10, 10))", 'answer': 0}, |
|
24
|
|
|
{'input': "max(x + 5 for x in range(6))", 'answer': 10}, |
|
25
|
|
|
{'input': 'max(filter(str.isalpha,"@v$e56r5CY{]"))', 'answer': 'v'}, |
|
26
|
|
|
{'input': "min({1, 2, 3, 4, -10})", 'answer': -10}, |
|
27
|
|
|
{'input': "max(set('djsaljldsklfjzx'))", 'answer': "z"}, |
|
28
|
|
|
{'input': "min(set('djsaljldsklfjzx'))", 'answer': "a"}, |
|
29
|
|
|
{'input': "max([1, 2, 3], [5, 6], [7], [0, 0, 0, 1])", 'answer': [7]}, |
|
30
|
|
|
{ |
|
31
|
|
|
'input': "min([1, 2, 3], [5, 6], [7], [0, 0, 0, 10], key=sum)", |
|
32
|
|
|
'answer': [1, 2, 3], |
|
33
|
|
|
}, |
|
34
|
|
|
{'input': "max(True, False, -1, key=lambda x: not x)", 'answer': False}, |
|
35
|
|
|
{'input': "min(True, False, -1)", 'answer': -1}, |
|
36
|
|
|
], |
|
37
|
|
|
} |
|
38
|
|
|
|
|
39
|
|
|
def test_Basics(self): |
|
40
|
|
|
for i in self.TESTS['1. Basics']: |
|
41
|
|
|
assert eval(i['input']) == i['answer'] |
|
42
|
|
|
|
|
43
|
|
|
def test_Extra(self): |
|
44
|
|
|
for i in self.TESTS['Extra']: |
|
45
|
|
|
assert eval(i['input']) == i['answer'] |
|
46
|
|
|
|
|
47
|
|
|
|
|
48
|
|
|
if __name__ == "__main__": # pragma: no cover |
|
49
|
|
|
unittest.main() |
|
50
|
|
|
|