test_most_numbers   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 175
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 134
dl 0
loc 175
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 most_numbers import checkio
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "Basics": [
9
            {"input": [1, 2, 3], "answer": 2, "explanation": "3-1=2"},
10
            {"input": [5, -5], "answer": 10, "explanation": "5-(-5)=10"},
11
            {
12
                "input": [10.2, -2.2, 0, 1.1, 0.5],
13
                "answer": 12.4,
14
                "explanation": "10.2-(-2.2)=12.4",
15
            },
16
            {"input": [], "answer": 0, "explanation": "Empty"},
17
        ],
18
        "Extra": [
19
            {"input": [-99.9, 99.9], "answer": 199.8, "explanation": "99.9-(-99.9)"},
20
            {"input": [1, 1], "answer": 0, "explanation": "1-1"},
21
            {"input": [0, 0, 0, 0], "answer": 0, "explanation": "0-0"},
22
            {
23
                "input": [
24
                    36.0,
25
                    -26.0,
26
                    -7.5,
27
                    0.9,
28
                    0.53,
29
                    -6.6,
30
                    -71.0,
31
                    0.53,
32
                    -48.0,
33
                    57.0,
34
                    69.0,
35
                    0.063,
36
                    -4.7,
37
                    0.01,
38
                    9.2,
39
                ],
40
                "answer": 140.0,
41
                "explanation": "69.0-(-71.0)",
42
            },
43
            {
44
                "input": [-0.035, 0.0, -0.1, 83.0, 0.28, 60.0],
45
                "answer": 83.1,
46
                "explanation": "83.0-(-0.1)",
47
            },
48
            {
49
                "input": [0.02, 0.93, 0.066, -94.0, -0.91, -21.0, -7.2, -0.018, 26.0],
50
                "answer": 120.0,
51
                "explanation": "26.0-(-94.0)",
52
            },
53
            {
54
                "input": [89.0, 0.014, 2.9, -1.2, 5.8],
55
                "answer": 90.2,
56
                "explanation": "89.0-(-1.2)",
57
            },
58
            {
59
                "input": [-69.0, 0.0, 0.0, -0.051, -0.021, -0.81],
60
                "answer": 69.0,
61
                "explanation": "0.0-(-69.0)",
62
            },
63
            {"input": [-0.07], "answer": 0.0, "explanation": "-0.07-(-0.07)"},
64
            {
65
                "input": [
66
                    0.074,
67
                    0.12,
68
                    -0.4,
69
                    4.0,
70
                    -1.7,
71
                    3.0,
72
                    -5.1,
73
                    0.57,
74
                    -54.0,
75
                    -41.0,
76
                    -5.2,
77
                    -5.6,
78
                    3.8,
79
                    0.054,
80
                    -35.0,
81
                    -5.0,
82
                    -0.005,
83
                    0.034,
84
                ],
85
                "answer": 58.0,
86
                "explanation": "4.0-(-54.0)",
87
            },
88
            {
89
                "input": [
90
                    29.0,
91
                    0.47,
92
                    -4.5,
93
                    -6.7,
94
                    -0.051,
95
                    -0.82,
96
                    -0.074,
97
                    -4.0,
98
                    -0.015,
99
                    -0.015,
100
                    -8.0,
101
                    -0.43,
102
                ],
103
                "answer": 37.0,
104
                "explanation": "29.0-(-8.0)",
105
            },
106
            {
107
                "input": [-0.036, -0.11, -0.55, -64.0],
108
                "answer": 63.964,
109
                "explanation": "-0.036-(-64.0)",
110
            },
111
            {
112
                "input": [
113
                    -0.092,
114
                    -0.079,
115
                    -0.31,
116
                    -0.87,
117
                    -28.0,
118
                    -6.2,
119
                    -0.097,
120
                    -5.8,
121
                    -0.025,
122
                    -28.0,
123
                    -4.7,
124
                    -2.9,
125
                    -8.0,
126
                    -0.093,
127
                    -13.0,
128
                    -73.0,
129
                ],
130
                "answer": 72.975,
131
                "explanation": "-0.025-(-73.0)",
132
            },
133
            {"input": [-0.015, 7.6], "answer": 7.615, "explanation": "7.6-(-0.015)"},
134
            {
135
                "input": [
136
                    -46.0,
137
                    0.19,
138
                    -0.08,
139
                    -4.0,
140
                    4.4,
141
                    0.071,
142
                    -0.029,
143
                    -0.034,
144
                    28.0,
145
                    0.043,
146
                    -97.0,
147
                ],
148
                "answer": 125.0,
149
                "explanation": "28.0-(-97.0)",
150
            },
151
            {
152
                "input": [32.0, -0.07, -0.056, -6.4, 0.084],
153
                "answer": 38.4,
154
                "explanation": "32.0-(-6.4)",
155
            },
156
            {
157
                "input": [0.017, 0.015, 0.69, 0.78],
158
                "answer": 0.765,
159
                "explanation": "0.78-0.015",
160
            },
161
        ],
162
    }
163
164
    def test_Basics(self):
165
        for i in self.TESTS['Basics']:
166
            assert checkio(*i['input']) == i['answer'], i['input']
167
168
    def test_Extra(self):
169
        for i in self.TESTS['Extra']:
170
            assert checkio(*i['input']) == i['answer'], i['input']
171
172
173
if __name__ == "__main__":  # pragma: no cover
174
    unittest.main()
175