use of com.graphhopper.reader.ReaderWay in project graphhopper by graphhopper.
the class OSMMaxSpeedParserTest method countryRule.
@Test
void countryRule() {
EncodingManager em = EncodingManager.create("car");
DecimalEncodedValue maxSpeedEnc = em.getDecimalEncodedValue(MaxSpeed.KEY);
Graph graph = new GraphBuilder(em).create();
FlagEncoder encoder = em.getEncoder("car");
EdgeIteratorState e1 = GHUtility.setSpeed(60, true, true, encoder, graph.edge(0, 1).setDistance(100));
EdgeIteratorState e2 = GHUtility.setSpeed(60, true, true, encoder, graph.edge(1, 2).setDistance(100));
OSMMaxSpeedParser parser = new OSMMaxSpeedParser(maxSpeedEnc);
IntsRef relFlags = em.createRelationFlags();
ReaderWay way = new ReaderWay(29L);
way.setTag("highway", "living_street");
way.setTag("country_rule", new CountryRule() {
@Override
public double getMaxSpeed(ReaderWay readerWay, TransportationMode transportationMode, double currentMaxSpeed) {
return 5;
}
});
parser.handleWayTags(e1.getFlags(), way, relFlags);
assertEquals(5, e1.get(maxSpeedEnc), .1);
// without a country_rule we get the default value
way.removeTag("country_rule");
parser.handleWayTags(e2.getFlags(), way, relFlags);
assertEquals(MaxSpeed.UNSET_SPEED, e2.get(maxSpeedEnc), .1);
}
use of com.graphhopper.reader.ReaderWay in project graphhopper by graphhopper.
the class OSMRoadClassParserTest method testSimpleTags.
@Test
public void testSimpleTags() {
ReaderWay readerWay = new ReaderWay(1);
IntsRef edgeFlags = em.createEdgeFlags();
readerWay.setTag("highway", "primary");
parser.handleWayTags(edgeFlags, readerWay, relFlags);
assertEquals(RoadClass.PRIMARY, rcEnc.getEnum(false, edgeFlags));
edgeFlags = em.createEdgeFlags();
readerWay.setTag("highway", "unknownstuff");
parser.handleWayTags(edgeFlags, readerWay, relFlags);
assertEquals(RoadClass.OTHER, rcEnc.getEnum(false, edgeFlags));
edgeFlags = em.createEdgeFlags();
readerWay.setTag("highway", "motorway_link");
parser.handleWayTags(edgeFlags, readerWay, relFlags);
assertEquals(RoadClass.MOTORWAY, rcEnc.getEnum(false, edgeFlags));
}
use of com.graphhopper.reader.ReaderWay in project graphhopper by graphhopper.
the class CountryRuleTest method createReaderWay.
private ReaderWay createReaderWay(String highway) {
ReaderWay readerWay = new ReaderWay(123L);
readerWay.setTag("highway", highway);
return readerWay;
}
use of com.graphhopper.reader.ReaderWay in project graphhopper by graphhopper.
the class OSMHazmatParserTest method testNoNPE.
@Test
public void testNoNPE() {
ReaderWay readerWay = new ReaderWay(1);
IntsRef intsRef = em.createEdgeFlags();
parser.handleWayTags(intsRef, readerWay, relFlags);
assertEquals(Hazmat.YES, hazEnc.getEnum(false, intsRef));
}
use of com.graphhopper.reader.ReaderWay in project graphhopper by graphhopper.
the class OSMHazmatWaterParserTest method testSimpleTags.
@Test
public void testSimpleTags() {
ReaderWay readerWay = new ReaderWay(1);
IntsRef intsRef = em.createEdgeFlags();
readerWay.setTag("hazmat:water", "no");
parser.handleWayTags(intsRef, readerWay, relFlags);
assertEquals(HazmatWater.NO, hazWaterEnc.getEnum(false, intsRef));
intsRef = em.createEdgeFlags();
readerWay.setTag("hazmat:water", "yes");
parser.handleWayTags(intsRef, readerWay, relFlags);
assertEquals(HazmatWater.YES, hazWaterEnc.getEnum(false, intsRef));
intsRef = em.createEdgeFlags();
readerWay.setTag("hazmat:water", "permissive");
parser.handleWayTags(intsRef, readerWay, relFlags);
assertEquals(HazmatWater.PERMISSIVE, hazWaterEnc.getEnum(false, intsRef));
}
Aggregations