Skip to content

Commit 60a3c1c

Browse files
committed
Fix tests
1 parent ecc8ba2 commit 60a3c1c

File tree

1 file changed

+43
-26
lines changed

1 file changed

+43
-26
lines changed

planetiler-core/src/test/java/com/onthegomap/planetiler/util/LoopLineMergerTest.java

+43-26
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.junit.jupiter.params.provider.CsvSource;
1818
import org.locationtech.jts.geom.Coordinate;
1919
import org.locationtech.jts.geom.Geometry;
20-
import org.locationtech.jts.geom.PrecisionModel;
2120
import org.locationtech.jts.io.ParseException;
2221
import org.locationtech.jts.io.WKBReader;
2322
import org.locationtech.jts.operation.linemerge.LineMerger;
@@ -28,6 +27,8 @@ class LoopLineMergerTest {
2827
void testMergeTouchingLinestrings() {
2928
var merger = new LoopLineMerger()
3029
.setMinLength(-1)
30+
.setStubMinLength(-1)
31+
.setTolerance(-1)
3132
.setLoopMinLength(-1);
3233

3334
merger.add(newLineString(10, 10, 20, 20));
@@ -59,6 +60,8 @@ void testKeepTwoSeparateLinestring() {
5960
void testDoesNotOvercountAlreadyAddedLines() {
6061
var merger = new LoopLineMerger()
6162
.setMinLength(-1)
63+
.setTolerance(-1)
64+
.setStubMinLength(-1)
6265
.setLoopMinLength(-1);
6366

6467
merger.add(newLineString(10, 10, 20, 20));
@@ -74,21 +77,25 @@ void testDoesNotOvercountAlreadyAddedLines() {
7477
void testSplitLinestringsBeforeMerging() {
7578
var merger = new LoopLineMerger()
7679
.setMinLength(-1)
77-
.setLoopMinLength(-1);
80+
.setLoopMinLength(-1)
81+
.setStubMinLength(-1)
82+
.setTolerance(-1);
7883

7984
merger.add(newLineString(10, 10, 20, 20, 30, 30));
8085
merger.add(newLineString(20, 20, 30, 30, 40, 40));
8186
assertEquals(
82-
List.of(newLineString(40, 40, 30, 30, 20, 20, 10, 10)),
87+
List.of(newLineString(10, 10, 20, 20, 30, 30, 40, 40)),
8388
merger.getMergedLineStrings()
8489
);
8590
}
8691

8792
@Test
8893
void testProgressiveStubRemoval() {
8994
var merger = new LoopLineMerger()
90-
.setMinLength(4)
91-
.setPrecisionModel(new PrecisionModel(-1.0));
95+
.setMinLength(-1)
96+
.setStubMinLength(4)
97+
.setLoopMinLength(-1)
98+
.setTolerance(-1);
9299

93100
merger.add(newLineString(0, 0, 5, 0)); // stub length 5
94101
merger.add(newLineString(5, 0, 6, 0)); // mid piece
@@ -97,7 +104,7 @@ void testProgressiveStubRemoval() {
97104
merger.add(newLineString(6, 0, 6, 1)); // stub length 1
98105

99106
assertEquals(
100-
List.of(newLineString(8, 0, 6, 0, 5, 0, 0, 0)),
107+
List.of(newLineString(0, 0, 5, 0, 6, 0, 8, 0)),
101108
merger.getMergedLineStrings()
102109
);
103110
}
@@ -106,7 +113,9 @@ void testProgressiveStubRemoval() {
106113
void testRoundCoordinatesBeforeMerging() {
107114
var merger = new LoopLineMerger()
108115
.setMinLength(-1)
109-
.setLoopMinLength(-1);
116+
.setLoopMinLength(-1)
117+
.setStubMinLength(-1)
118+
.setTolerance(-1);
110119

111120
merger.add(newLineString(10.00043983098, 10, 20, 20));
112121
merger.add(newLineString(20, 20, 30, 30));
@@ -120,11 +129,10 @@ void testRoundCoordinatesBeforeMerging() {
120129
void testRemoveSmallLoops() {
121130
var merger = new LoopLineMerger()
122131
.setMinLength(-1)
132+
.setStubMinLength(-1)
133+
.setTolerance(-1)
123134
.setLoopMinLength(100);
124135

125-
/*
126-
* 10 20 30 40 10 o--o--o \ | \| 20 o--o
127-
*/
128136
merger.add(newLineString(
129137
10, 10,
130138
20, 10,
@@ -139,10 +147,10 @@ void testRemoveSmallLoops() {
139147
assertEquals(
140148
List.of(
141149
newLineString(
142-
40, 20,
143-
30, 20,
150+
10, 10,
144151
20, 10,
145-
10, 10
152+
30, 20,
153+
40, 20
146154
)
147155
),
148156
merger.getMergedLineStrings()
@@ -151,13 +159,24 @@ void testRemoveSmallLoops() {
151159

152160
@Test
153161
void testRemoveSelfClosingLoops() {
162+
// Note that self-closing loops are considered stubs.
163+
// They are removed by stubMinLength, not loopMinLength...
154164
var merger = new LoopLineMerger()
155165
.setMinLength(-1)
156-
.setLoopMinLength(10);
166+
.setTolerance(-1)
167+
.setStubMinLength(5)
168+
.setLoopMinLength(-1);
157169

158-
merger.add(newLineString(1, 0, 1, 1, 1, 2, 0, 2, 0, 1, 1, 1, 2, 1));
170+
merger.add(newLineString(
171+
1, -10,
172+
1, 1,
173+
1, 2,
174+
0, 2,
175+
0, 1,
176+
1, 1,
177+
10, 1));
159178
assertEquals(
160-
List.of(newLineString(1, 0, 1, 1, 2, 1)),
179+
List.of(newLineString(1, -10, 1, 1, 10, 1)),
161180
merger.getMergedLineStrings()
162181
);
163182
}
@@ -168,9 +187,6 @@ void testDoNotRemoveLargeLoops() {
168187
.setMinLength(-1)
169188
.setLoopMinLength(0.001);
170189

171-
/*
172-
* 10 20 30 40 10 o--o--o \ | \| 20 o--o
173-
*/
174190
merger.add(newLineString(
175191
10, 10,
176192
20, 10,
@@ -207,9 +223,11 @@ void testDoNotRemoveLargeLoops() {
207223
}
208224

209225
@Test
210-
void testRemoveShortStubs() {
226+
void testRemoveShortLine() {
211227
var merger = new LoopLineMerger()
212228
.setMinLength(10)
229+
.setStubMinLength(-1)
230+
.setTolerance(-1)
213231
.setLoopMinLength(-1);
214232

215233
merger.add(newLineString(10, 10, 11, 11));
@@ -224,20 +242,19 @@ void testRemoveShortStubs() {
224242
@Test
225243
void testRemovesShortStubsTheNonStubsThatAreTooShort() {
226244
var merger = new LoopLineMerger()
227-
.setMinLength(15)
228-
.setLoopMinLength(-1);
245+
.setMinLength(0)
246+
.setLoopMinLength(-1)
247+
.setStubMinLength(15)
248+
.setTolerance(-1);
229249

230-
/*
231-
* 0 20 30 50 0 o----o--o----o | | 10 o o
232-
*/
233250
merger.add(newLineString(0, 0, 20, 0));
234251
merger.add(newLineString(20, 0, 30, 0));
235252
merger.add(newLineString(30, 0, 50, 0));
236253
merger.add(newLineString(20, 0, 20, 10));
237254
merger.add(newLineString(30, 0, 30, 10));
238255

239256
assertEquals(
240-
List.of(newLineString(50, 0, 30, 0, 20, 0, 0, 0)),
257+
List.of(newLineString(0, 0, 20, 0, 30, 0, 50, 0)),
241258
merger.getMergedLineStrings()
242259
);
243260
}

0 commit comments

Comments
 (0)