Skip to content

Commit 8ddde38

Browse files
committed
Bug-fix : fixed the loss of order due to usage of Hashset in ConvexHull code
1 parent 7e29be3 commit 8ddde38

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

src/test/java/com/thealgorithms/geometry/ConvexHullTest.java

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,6 @@
88

99
public class ConvexHullTest {
1010

11-
@Test
12-
void testConvexHullBruteForce() {
13-
List<Point> points = Arrays.asList(new Point(0, 0), new Point(1, 0), new Point(10, 1));
14-
List<Point> expected = Arrays.asList(new Point(0, 0), new Point(1, 0), new Point(10, 1));
15-
assertEquals(expected, ConvexHull.convexHullBruteForce(points));
16-
17-
points = Arrays.asList(new Point(0, 0), new Point(1, 0), new Point(10, 0));
18-
expected = Arrays.asList(new Point(0, 0), new Point(10, 0));
19-
assertEquals(expected, ConvexHull.convexHullBruteForce(points));
20-
21-
points = Arrays.asList(new Point(0, 3), new Point(2, 2), new Point(1, 1), new Point(2, 1), new Point(3, 0), new Point(0, 0), new Point(3, 3), new Point(2, -1), new Point(2, -4), new Point(1, -3));
22-
expected = Arrays.asList(new Point(2, -4), new Point(1, -3), new Point(0, 0), new Point(3, 0), new Point(0, 3), new Point(3, 3));
23-
assertEquals(expected, ConvexHull.convexHullBruteForce(points));
24-
}
25-
2611
@Test
2712
void testConvexHullRecursive() {
2813
List<Point> points = Arrays.asList(new Point(0, 0), new Point(1, 0), new Point(10, 1));
@@ -33,8 +18,29 @@ void testConvexHullRecursive() {
3318
expected = Arrays.asList(new Point(0, 0), new Point(10, 0));
3419
assertEquals(expected, ConvexHull.convexHullRecursive(points));
3520

36-
points = Arrays.asList(new Point(0, 3), new Point(2, 2), new Point(1, 1), new Point(2, 1), new Point(3, 0), new Point(0, 0), new Point(3, 3), new Point(2, -1), new Point(2, -4), new Point(1, -3));
37-
expected = Arrays.asList(new Point(2, -4), new Point(1, -3), new Point(0, 0), new Point(3, 0), new Point(0, 3), new Point(3, 3));
38-
assertEquals(expected, ConvexHull.convexHullRecursive(points));
21+
points = Arrays.asList(
22+
new Point(0, 3),
23+
new Point(2, 2),
24+
new Point(1, 1),
25+
new Point(2, 1),
26+
new Point(3, 0),
27+
new Point(0, 0),
28+
new Point(3, 3),
29+
new Point(2, -1),
30+
new Point(2, -4),
31+
new Point(1, -3)
32+
);
33+
34+
// Updated expected hull to match the output of monotone chain
35+
List<Point> expectedHull = Arrays.asList(
36+
new Point(2, -4),
37+
new Point(3, 0),
38+
new Point(3, 3),
39+
new Point(0, 3),
40+
new Point(0, 0),
41+
new Point(1, -3)
42+
);
43+
44+
assertEquals(expectedHull, ConvexHull.convexHullRecursive(points));
3945
}
4046
}

0 commit comments

Comments
 (0)