forked from Julien00859/teaching-git
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmaths.py
More file actions
37 lines (29 loc) · 713 Bytes
/
maths.py
File metadata and controls
37 lines (29 loc) · 713 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def add(a, b):
return a + b
def mul(a, b):
c = 0
for _ in range(abs(b)):
c += a * sign(b)
return c
def sign(n, zero=1):
if not n:
return zero
return n / abs(n)
def sub(a, b):
return a - b
if __name__ == '__main__':
import sys
if '--test' in sys.argv:
assert add(0, 0) == 0
assert add(20, 10) == 30
assert mul(1, 0) == 0
assert mul(0, 1) == 0
assert mul(2, 6) == 12
assert mul(-2, 6) == -12
assert mul(6, -2) == -12
assert mul(-2, -6) == 12
assert sign(1) == 1
assert sign(-1) == -1
assert sub(0, 0) == 0
assert sub(1, 0) == 1
assert sub(0, 1) == -1