mirror of
https://github.com/TheAlgorithms/Java.git
synced 2026-03-13 08:40:43 +08:00
Add distance between two points algorithm (#7218)
* Add distance between two points algorithm * Create DistanceBetweenTwoPointsTest.java * DistanceBetweenTwoPoints.java * Fix test file package and project structure * Delete src/test/java/com/thealgorithms/DistanceBetweenTwoPointsTest.java * Apply clang-format compliant formatting * Apply clang-format --------- Co-authored-by: a <19151554+alxkm@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
package com.thealgorithms.maths;
|
||||
|
||||
/**
|
||||
* Distance Between Two Points in 2D Space.
|
||||
*
|
||||
* <p>This class provides a method to calculate the Euclidean distance between two points in a
|
||||
* two-dimensional plane.
|
||||
*
|
||||
* <p>Formula: d = sqrt((x2 - x1)^2 + (y2 - y1)^2)
|
||||
*
|
||||
* <p>Reference: https://en.wikipedia.org/wiki/Euclidean_distance
|
||||
*/
|
||||
public final class DistanceBetweenTwoPoints {
|
||||
|
||||
private DistanceBetweenTwoPoints() {
|
||||
// Utility class; prevent instantiation
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate the Euclidean distance between two points.
|
||||
*
|
||||
* @param x1 x-coordinate of the first point
|
||||
* @param y1 y-coordinate of the first point
|
||||
* @param x2 x-coordinate of the second point
|
||||
* @param y2 y-coordinate of the second point
|
||||
* @return Euclidean distance between the two points
|
||||
*/
|
||||
public static double calculate(final double x1, final double y1, final double x2, final double y2) {
|
||||
final double deltaX = x2 - x1;
|
||||
final double deltaY = y2 - y1;
|
||||
return Math.sqrt(deltaX * deltaX + deltaY * deltaY);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.thealgorithms.maths;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class DistanceBetweenTwoPointsTest {
|
||||
|
||||
@Test
|
||||
void testDistanceSimple() {
|
||||
assertEquals(5.0, DistanceBetweenTwoPoints.calculate(0, 0, 3, 4), 1e-9);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDistanceNegativeCoordinates() {
|
||||
assertEquals(5.0, DistanceBetweenTwoPoints.calculate(-1, -1, 2, 3), 1e-9);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSamePoint() {
|
||||
assertEquals(0.0, DistanceBetweenTwoPoints.calculate(2, 2, 2, 2), 1e-9);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user