def testCyclicListDistance(self): lrecords = [] for k, v in enumerate(self.letters): lrecords.append((k, v)) def frecords(): for i in lrecords: yield i distance = lambda a, b: min( abs(a[0] - b[0]), len(self.letters) - max(a[0], b[0]) + min(a[0], b[0])) s = lrecords[0] #print s self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 4, distance)), [(1, 'b'), (2, 'c'), (8, 'i'), (9, 'j')]) s = lrecords[5] self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 4, distance)), [(3, 'd'), (4, 'e'), (6, 'g'), (7, 'h')]) s = lrecords[9] self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 4, distance)), [(0, 'a'), (1, 'b'), (7, 'h'), (8, 'i')])
def test2(self): points = [(2, 6), (18, 14), (4, 18), (17, 3), (4, 2), (9, 10), (16, 10), (4, 18), (15, 11), (9, 8), (9, 14), (18, 4), (4, 16), (1, 13), (10, 14), (14, 12), (15, 4), (4, 6), (7, 16), (0, 19)] closest_points = [(2, 6), (4, 6), (9, 8), (1, 13), (4, 2)] self.assertEqual(closest_points, find_closest_points(5, points))
def testAcyclicListDistance(self): lrecords = [] for k, v in enumerate(self.letters): lrecords.append((2 * k, v)) def frecords(): for i in lrecords: yield i distance = lambda a, b: abs(a[0] - b[0]) s = lrecords[0] self.assertEqual(sorted(find_closest_points(s, frecords(), [s], 3, distance)), [(2, "b"), (4, "c"), (6, "d")]) s = lrecords[5] self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 4, distance)), [(6, "d"), (8, "e"), (12, "g"), (14, "h")] ) s = lrecords[9] self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 3, distance)), [(12, "g"), (14, "h"), (16, "i")] )
def testAcyclicListDistance(self): lrecords = [] for k, v in enumerate(self.letters): lrecords.append((2 * k, v)) def frecords(): for i in lrecords: yield i distance = lambda a, b: abs(a[0] - b[0]) s = lrecords[0] self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 3, distance)), [(2, 'b'), (4, 'c'), (6, 'd')]) s = lrecords[5] self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 4, distance)), [(6, 'd'), (8, 'e'), (12, 'g'), (14, 'h')]) s = lrecords[9] self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 3, distance)), [(12, 'g'), (14, 'h'), (16, 'i')])
def testCyclicListDistance(self): lrecords = [] for k, v in enumerate(self.letters): lrecords.append((k, v)) def frecords(): for i in lrecords: yield i distance = lambda a, b: min(abs(a[0] - b[0]), len(self.letters) - max(a[0], b[0]) + min(a[0], b[0])) s = lrecords[0] # print s self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 4, distance)), [(1, "b"), (2, "c"), (8, "i"), (9, "j")] ) s = lrecords[5] self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 4, distance)), [(3, "d"), (4, "e"), (6, "g"), (7, "h")] ) s = lrecords[9] self.assertEqual( sorted(find_closest_points(s, frecords(), [s], 4, distance)), [(0, "a"), (1, "b"), (7, "h"), (8, "i")] )
def test1(self): points = [(1, 1), (1, 2), (1, 3)] closest_points = [(1, 1), (1, 2)] self.assertEqual(closest_points, find_closest_points(2, points))