From 58dbf03988de550c68fad019bd34ab09a5ff0d07 Mon Sep 17 00:00:00 2001 From: Haidong Ji Date: Sat, 15 Dec 2018 21:37:43 -0600 Subject: Closest Pair done! Yay, so much fun. Breaking things down into small, actionable items, and doing it, this never fails! Persist! Glad that my org-mode Emacs TODO helps making it happen.--- .../tests/ClosestDistanceTest.java | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 AlgoDesignAndTechniqueEdxJava/tests/ClosestDistanceTest.java (limited to 'AlgoDesignAndTechniqueEdxJava/tests/ClosestDistanceTest.java') diff --git a/AlgoDesignAndTechniqueEdxJava/tests/ClosestDistanceTest.java b/AlgoDesignAndTechniqueEdxJava/tests/ClosestDistanceTest.java new file mode 100644 index 0000000..87ce590 --- /dev/null +++ b/AlgoDesignAndTechniqueEdxJava/tests/ClosestDistanceTest.java @@ -0,0 +1,70 @@ +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Arrays; + +import org.junit.jupiter.api.Test; + +class ClosestDistanceTest { + + @Test + void test() { + int[] x = { 0, 3 }; + int[] y = { 0, 4 }; + double result = 5.0; + assertEquals(result, CloestDistance.minimalDistance(x, y), 0.0001); + } + + @Test + void testThreePoints() { + int[] x = { 0, 3, 5 }; + int[] y = { 0, 4, 6 }; + double result = 2.828427; + assertEquals(result, CloestDistance.minimalDistance(x, y), 0.0001); + } + + @Test + void test1() { + int[] x = { 7, 1, 4, 7 }; + int[] y = { 7, 100, 8, 7 }; + double result = 0.0; + assertEquals(result, CloestDistance.minimalDistance(x, y), 0.0001); + } + + @Test + void test2() { + int[] x = { 4, -2, -3, -1, 2, -4, 1, -1, 3, -4, -2 }; + int[] y = { 4, -2, -4, 3, 3, 0, 1, -1, -1, 2, 4 }; + double result = 1.414213; + assertEquals(result, CloestDistance.minimalDistance(x, y), 0.0001); + } + + @Test + void testSortPointsArray() { + int[] x = { 4, -2, -3, -1, 2, -4, 1, -1, 3, -4, -2 }; + int[] y = { 4, -2, -4, 3, 3, 0, 1, -1, -1, 2, 4 }; + CloestDistance.Point[] p = new CloestDistance.Point[11]; + for (int i = 0; i < p.length; i++) { + p[i] = new CloestDistance.Point(x[i], y[i]); + } + + Arrays.sort(p, new CloestDistance.XComparator()); + assertEquals(-4, p[0].x); + assertEquals(0, p[0].y); + + Arrays.sort(p, new CloestDistance.YComparator()); + assertEquals(-4, p[0].y); + assertEquals(-3, p[0].x); + assertEquals(4, p[10].y); + assertEquals(4, p[10].x); + + } + + @Test + void testDistance() { + CloestDistance.Point p1 = new CloestDistance.Point(0, 0); + CloestDistance.Point p2 = new CloestDistance.Point(1, 1); + double result = 1.414213; + assertEquals(result, CloestDistance.distance(p1, p2), 0.0001); + } + +} -- cgit v1.2.3