TheAlgorithms-Python

Форк
0
58 строк · 1.2 Кб
1
"""
2
Signum function -- https://en.wikipedia.org/wiki/Sign_function
3
"""
4

5

6
def signum(num: float) -> int:
7
    """
8
    Applies signum function on the number
9

10
    Custom test cases:
11
    >>> signum(-10)
12
    -1
13
    >>> signum(10)
14
    1
15
    >>> signum(0)
16
    0
17
    >>> signum(-20.5)
18
    -1
19
    >>> signum(20.5)
20
    1
21
    >>> signum(-1e-6)
22
    -1
23
    >>> signum(1e-6)
24
    1
25
    >>> signum("Hello")
26
    Traceback (most recent call last):
27
        ...
28
    TypeError: '<' not supported between instances of 'str' and 'int'
29
    >>> signum([])
30
    Traceback (most recent call last):
31
        ...
32
    TypeError: '<' not supported between instances of 'list' and 'int'
33
    """
34
    if num < 0:
35
        return -1
36
    return 1 if num else 0
37

38

39
def test_signum() -> None:
40
    """
41
    Tests the signum function
42
    >>> test_signum()
43
    """
44
    assert signum(5) == 1
45
    assert signum(-5) == -1
46
    assert signum(0) == 0
47
    assert signum(10.5) == 1
48
    assert signum(-10.5) == -1
49
    assert signum(1e-6) == 1
50
    assert signum(-1e-6) == -1
51
    assert signum(123456789) == 1
52
    assert signum(-123456789) == -1
53

54

55
if __name__ == "__main__":
56
    print(signum(12))
57
    print(signum(-12))
58
    print(signum(0))
59

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.