mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
* test: added Tests for Point.java * style: fixed formatting and comments * style: formatted with clang-format and renamed variables * style: fixed imports to not use the '.*' form --------- Co-authored-by: Aaron <aaron@hochschule.de> Co-authored-by: Deniz Altunkapan <93663085+DenizAltunkapan@users.noreply.github.com>
118 lines
3.1 KiB
Java
118 lines
3.1 KiB
Java
package com.thealgorithms.geometry;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
public class PointTest {
|
|
|
|
@Test
|
|
void testCompareTo() {
|
|
Point p1 = new Point(1, 2);
|
|
Point p2 = new Point(5, -1);
|
|
Point p3 = new Point(3, 9);
|
|
Point p4 = new Point(3, 9);
|
|
assertEquals(1, p1.compareTo(p2));
|
|
assertEquals(-1, p2.compareTo(p3));
|
|
assertEquals(0, p3.compareTo(p4));
|
|
}
|
|
|
|
@Test
|
|
void testToString() {
|
|
Point p = new Point(-3, 5);
|
|
assertEquals("(-3, 5)", p.toString());
|
|
}
|
|
|
|
@Test
|
|
void testPolarOrder() {
|
|
Point p = new Point(0, 0);
|
|
assertNotNull(p.polarOrder());
|
|
}
|
|
|
|
@Test
|
|
void testOrientation() {
|
|
// setup points
|
|
Point pA = new Point(0, 0);
|
|
Point pB = new Point(1, 0);
|
|
Point pC = new Point(1, 1);
|
|
|
|
// test for left curve
|
|
assertEquals(1, Point.orientation(pA, pB, pC));
|
|
|
|
// test for right curve
|
|
pB = new Point(0, 1);
|
|
assertEquals(-1, Point.orientation(pA, pB, pC));
|
|
|
|
// test for left curve
|
|
pC = new Point(-1, 1);
|
|
assertEquals(1, Point.orientation(pA, pB, pC));
|
|
|
|
// test for right curve
|
|
pB = new Point(1, 0);
|
|
pC = new Point(1, -1);
|
|
assertEquals(-1, Point.orientation(pA, pB, pC));
|
|
|
|
// test for collinearity
|
|
pB = new Point(1, 1);
|
|
pC = new Point(2, 2);
|
|
assertEquals(0, Point.orientation(pA, pB, pC));
|
|
}
|
|
|
|
@Test
|
|
void testPolarOrderCompare() {
|
|
Point ref = new Point(0, 0);
|
|
|
|
Point pA = new Point(1, 1);
|
|
Point pB = new Point(1, -1);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) < 0);
|
|
|
|
pA = new Point(3, 0);
|
|
pB = new Point(2, 0);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) < 0);
|
|
|
|
pA = new Point(0, 1);
|
|
pB = new Point(-1, 1);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) < 0);
|
|
|
|
pA = new Point(1, 1);
|
|
pB = new Point(2, 2);
|
|
assertEquals(0, ref.polarOrder().compare(pA, pB));
|
|
|
|
pA = new Point(1, 2);
|
|
pB = new Point(2, 1);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) > 0);
|
|
|
|
pA = new Point(2, 1);
|
|
pB = new Point(1, 2);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) < 0);
|
|
|
|
pA = new Point(-1, 0);
|
|
pB = new Point(-2, 0);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) < 0);
|
|
|
|
pA = new Point(2, 3);
|
|
pB = new Point(2, 3);
|
|
assertEquals(0, ref.polarOrder().compare(pA, pB));
|
|
|
|
pA = new Point(0, 1);
|
|
pB = new Point(0, -1);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) < 0);
|
|
|
|
ref = new Point(1, 1);
|
|
|
|
pA = new Point(1, 2);
|
|
pB = new Point(2, 2);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) > 0);
|
|
|
|
pA = new Point(2, 1);
|
|
pB = new Point(2, 0);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) < 0);
|
|
|
|
pA = new Point(0, 1);
|
|
pB = new Point(1, 0);
|
|
assertTrue(ref.polarOrder().compare(pA, pB) < 0);
|
|
}
|
|
}
|