most_numbers   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 24
rs 10
c 0
b 0
f 0
wmc 4

2 Functions

Rating   Name   Duplication   Size   Complexity  
A checkio() 0 9 3
A almost_equal() 0 3 1
1
def checkio(*args):
2
    if args:
3
        result = max(args) - min(args)
4
        if isinstance(result, int):
5
            return result
6
        else:
7
            return round(result, 3)
8
    else:
9
        return 0
10
11
12
# These "asserts" using only for self-checking and not necessary for
13
# auto-testing
14
if __name__ == '__main__':  # pragma: no cover
15
16
    def almost_equal(checked, correct, significant_digits):
17
        precision = 0.1 ** significant_digits
18
        return correct - precision < checked < correct + precision
19
20
    assert almost_equal(checkio(1, 2, 3), 2, 3), "3-1=2"
21
    assert almost_equal(checkio(5, -5), 10, 3), "5-(-5)=10"
22
    assert almost_equal(checkio(10.2, -2.2, 0, 1.1, 0.5), 12.4, 3), "10.2-(-2.2)=12.4"
23
    assert almost_equal(checkio(), 0, 3), "Empty"
24