summaryrefslogtreecommitdiff
path: root/AlgoDesignAndTechniqueEdxPython/tests
diff options
context:
space:
mode:
Diffstat (limited to 'AlgoDesignAndTechniqueEdxPython/tests')
-rw-r--r--AlgoDesignAndTechniqueEdxPython/tests/closest_distanceTest.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/AlgoDesignAndTechniqueEdxPython/tests/closest_distanceTest.py b/AlgoDesignAndTechniqueEdxPython/tests/closest_distanceTest.py
new file mode 100644
index 0000000..b3391a7
--- /dev/null
+++ b/AlgoDesignAndTechniqueEdxPython/tests/closest_distanceTest.py
@@ -0,0 +1,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()