test_min_max.Tests.test_Extra()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
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