summaryrefslogtreecommitdiff
path: root/AlgoDesignAndTechniqueEdxPython/tests/closest_distanceTest.py
blob: b3391a7cca2a324fbbbceabc158e25d6ba5c4892 (plain)
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
'''
Created on Dec 16, 2018

@author: haidong
'''
import unittest

from sources.closest_distance import distance, minDistance


class Test(unittest.TestCase):

#     def testDistance(self):
#         p1 = (0, 0)
#         p2 = (1, 1)
#         result = 1.414214
#         self.assertAlmostEqual(result, distance(p1, p2), places=6)
    
    def testSortPointsArray(self):
        p = [(4, 4), (-2, -2), (-3, -4), (-1, 3), (2, 3), (-4, 0), (1, 1), (-1, -1), (3, -1), (-4, 2), (-2, 4)]
        p.sort()
        self.assertEqual(-4, p[0][0])
        self.assertEqual(0, p[0][1])
        
        p.sort(key=lambda x: x[1])
        self.assertEqual(-4, p[0][1])
        self.assertEqual(-3, p[0][0])
        self.assertEqual(4, p[10][1])
        self.assertEqual(4, p[10][0])
    
    def testMinDistance(self):
        x = [0, 3]
        y = [0, 4]
        result = 5.0
        self.assertAlmostEqual(result, minDistance(x, y))

    def testMinDistance1(self):
        x = [0, 3, 5]
        y = [0, 4, 6]
        result = 2.828427
        self.assertAlmostEqual(result, minDistance(x, y), places=6)

    def testMinDistance2(self):
        x = [7, 1, 4, 7]
        y = [7, 100, 8, 7]
        result = 0.0
        self.assertAlmostEqual(result, minDistance(x, y), places=6)

    def testMinDistance3(self):
        x = [4, -2, -3, -1, 2, -4, 1, -1, 3, -4, -2]
        y = [4, -2, -4, 3, 3, 0, 1, -1, -1, 2, 4]
        result = 1.414214
        self.assertAlmostEqual(result, minDistance(x, y), places=6)

    def testMinDistance4(self):
        x = [-2, -3, -1, 2, -4, 1, -1]
        y = [-2, -4, 3, 3, 0, 1, -1]
        result = 1.414214
        self.assertAlmostEqual(result, minDistance(x, y), places=6)


if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()