test_min_max   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 36
dl 0
loc 50
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A Tests.test_Basics() 0 3 2
A Tests.test_Extra() 0 3 2
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