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); } }