TheAlgorithms-Python
58 строк · 1.2 Кб
1"""
2Signum function -- https://en.wikipedia.org/wiki/Sign_function
3"""
4
5
6def signum(num: float) -> int:7"""8Applies signum function on the number
9
10Custom test cases:
11>>> signum(-10)
12-1
13>>> signum(10)
141
15>>> signum(0)
160
17>>> signum(-20.5)
18-1
19>>> signum(20.5)
201
21>>> signum(-1e-6)
22-1
23>>> signum(1e-6)
241
25>>> signum("Hello")
26Traceback (most recent call last):
27...
28TypeError: '<' not supported between instances of 'str' and 'int'
29>>> signum([])
30Traceback (most recent call last):
31...
32TypeError: '<' not supported between instances of 'list' and 'int'
33"""
34if num < 0:35return -136return 1 if num else 037
38
39def test_signum() -> None:40"""41Tests the signum function
42>>> test_signum()
43"""
44assert signum(5) == 145assert signum(-5) == -146assert signum(0) == 047assert signum(10.5) == 148assert signum(-10.5) == -149assert signum(1e-6) == 150assert signum(-1e-6) == -151assert signum(123456789) == 152assert signum(-123456789) == -153
54
55if __name__ == "__main__":56print(signum(12))57print(signum(-12))58print(signum(0))59