Skip to content

Commit 47a4f5e

Browse files
committed
Added functions to test linkage functions.
Currently they take up a lot of processing. Pulling them out, gives us an easier way to test them and subsequently try to improve them.
1 parent f528b8b commit 47a4f5e

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

cluster/test/test_linkage.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import unittest
2+
3+
from cluster.linkage import single, complete, uclus, average
4+
5+
6+
class LinkageMethods(unittest.TestCase):
7+
8+
def setUp(self):
9+
self.set_a = [1, 2, 3, 4]
10+
self.set_b = [10, 11, 12, 13, 14, 15, 100]
11+
self.dist = lambda x, y: abs(x-y) # NOQA
12+
13+
def test_single_distance(self):
14+
result = single(self.set_a, self.set_b, self.dist)
15+
expected = 6
16+
self.assertEqual(result, expected)
17+
18+
def test_complete_distance(self):
19+
result = complete(self.set_a, self.set_b, self.dist)
20+
expected = 99
21+
self.assertEqual(result, expected)
22+
23+
def test_uclus_distance(self):
24+
result = uclus(self.set_a, self.set_b, self.dist)
25+
expected = 10.5
26+
self.assertEqual(result, expected)
27+
28+
def test_average_distance(self):
29+
result = average(self.set_a, self.set_b, self.dist)
30+
expected = 22.5
31+
self.assertEqual(result, expected)

0 commit comments

Comments
 (0)