| Total Complexity | 4 |
| Total Lines | 24 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 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 |