-
Notifications
You must be signed in to change notification settings - Fork 0
/
euclidean.py
33 lines (30 loc) · 1020 Bytes
/
euclidean.py
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
import numpy as np
def euclidean(p1, p2):
assert np.equal(np.shape(p1), np.shape(p2)), 'The points muse have the same dimensions'
return np.sqrt(
np.sum(
np.fromiter(
(
np.power(
np.subtract(
p1[i],
p2[i]
),
2
)
for i in np.arange(np.shape(p1)[0])
),
np.float64
)
)
)
if __name__ == "__main__":
assert euclidean([0, 0], [1, 1]) == np.sqrt(2)
assert euclidean([1, 0], [0, 0]) == 1
assert euclidean([0, 0], [0, 2]) == 2
assert euclidean([0], [5]) == 5
assert euclidean([0, 1, 0], [0, 0, 0]) == 1
assert euclidean([0, 0, 0, 0], [1, 1, 1, 1]) == 2
assert euclidean([-1, -1], [1, 1]) == 2*np.sqrt(2)
assert euclidean([0, 0], [3, 4]) == 5
print('All tests passed!')