planetiler/planetiler-core/src/test/java/com/onthegomap/planetiler/reader/osm/OsmInputFileTest.java

46 wiersze
1.6 KiB
Java
Czysty Zwykły widok Historia

package com.onthegomap.planetiler.reader.osm;
2021-04-16 11:13:05 +00:00
import static org.junit.jupiter.api.Assertions.assertEquals;
import com.graphhopper.reader.ReaderElement;
import com.onthegomap.planetiler.TestUtils;
import com.onthegomap.planetiler.stats.Stats;
import com.onthegomap.planetiler.worker.WorkerPipeline;
2021-04-16 11:13:05 +00:00
import java.util.concurrent.atomic.AtomicInteger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Timeout;
2021-05-01 20:08:20 +00:00
import org.locationtech.jts.geom.Envelope;
2021-04-16 11:13:05 +00:00
public class OsmInputFileTest {
2021-09-10 00:46:20 +00:00
private final OsmInputFile file = new OsmInputFile(TestUtils.pathToResource("monaco-latest.osm.pbf"));
2021-04-16 11:13:05 +00:00
@Test
public void testGetBounds() {
2021-09-10 00:46:20 +00:00
assertEquals(new Envelope(7.409205, 7.448637, 43.72335, 43.75169), file.getLatLonBounds());
2021-04-16 11:13:05 +00:00
}
@Test
@Timeout(30)
2021-04-22 21:19:58 +00:00
public void testReadMonacoTwice() {
2021-04-16 11:13:05 +00:00
for (int i = 1; i <= 2; i++) {
AtomicInteger nodes = new AtomicInteger(0);
AtomicInteger ways = new AtomicInteger(0);
AtomicInteger rels = new AtomicInteger(0);
2021-08-05 11:09:52 +00:00
WorkerPipeline.start("test", Stats.inMemory())
2021-06-05 12:02:51 +00:00
.fromGenerator("pbf", file.read("test", 2))
2021-04-16 11:13:05 +00:00
.addBuffer("reader_queue", 1_000, 100)
.sinkToConsumer("counter", 1, elem -> {
switch (elem.getType()) {
case ReaderElement.NODE -> nodes.incrementAndGet();
case ReaderElement.WAY -> ways.incrementAndGet();
case ReaderElement.RELATION -> rels.incrementAndGet();
}
}).await();
2021-04-22 21:19:58 +00:00
assertEquals(25_423, nodes.get(), "nodes pass " + i);
assertEquals(4_106, ways.get(), "ways pass " + i);
assertEquals(243, rels.get(), "rels pass " + i);
2021-04-16 11:13:05 +00:00
}
}
}