Skip to content

Commit 015d384

Browse files
authored
Merge pull request #135 from lucasimi/develop
Added unit test for metrics
2 parents ec4f37d + f448edf commit 015d384

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

tests/test_unit_metrics.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import unittest
2+
3+
import numpy as np
4+
5+
import tdamapper.utils.metrics as metrics
6+
7+
8+
class TestMetrics(unittest.TestCase):
9+
10+
def test_euclidean(self):
11+
d = metrics.euclidean()
12+
a = np.array([1.0, 0.0])
13+
b = np.array([0.0, 1.0])
14+
ab = d(a, b)
15+
self.assertGreaterEqual(ab, 1.414)
16+
self.assertLessEqual(ab, 1.415)
17+
18+
def test_manhattan(self):
19+
d = metrics.manhattan()
20+
a = np.array([1.0, 0.0])
21+
b = np.array([0.0, 1.0])
22+
ab = d(a, b)
23+
self.assertEqual(ab, 2.0)
24+
25+
def test_chebyshev(self):
26+
d = metrics.chebyshev()
27+
a = np.array([1.0, 0.0])
28+
b = np.array([0.0, 1.0])
29+
ab = d(a, b)
30+
self.assertEqual(ab, 1.0)
31+
32+
def test_cosine(self):
33+
d = metrics.cosine()
34+
a = np.array([1.0, 0.0])
35+
b = np.array([0.0, 1.0])
36+
c = np.array([0.0, 2.0])
37+
ab = d(a, b)
38+
self.assertGreaterEqual(ab, 1.414)
39+
self.assertLessEqual(ab, 1.415)
40+
bc = d(b, c)
41+
self.assertEqual(bc, 0.0)
42+
43+
def test_get_metric(self):
44+
self.assertEqual(metrics.euclidean(), metrics.get_metric('euclidean'))
45+
self.assertEqual(metrics.euclidean(), metrics.get_metric('minkowski'))
46+
self.assertEqual(metrics.chebyshev(), metrics.get_metric('chebyshev'))
47+
self.assertEqual(metrics.chebyshev(), metrics.get_metric('minkowski', p=np.inf))
48+
self.assertEqual(metrics.chebyshev(), metrics.get_metric('minkowski', p=float('inf')))
49+
self.assertEqual(metrics.manhattan(), metrics.get_metric('manhattan'))
50+
self.assertEqual(metrics.manhattan(), metrics.get_metric('minkowski', p=1))
51+
self.assertEqual(metrics.cosine(), metrics.get_metric('cosine'))

0 commit comments

Comments
 (0)