@Override public long reverseFlags(long flags) { // swap access flags = super.reverseFlags(flags); // swap speeds double otherValue = reverseSpeedEncoder.getDoubleValue(flags); flags = setReverseSpeed(flags, speedEncoder.getDoubleValue(flags)); return setSpeed(flags, otherValue); }
@Test public void testSwapDir() { long swappedFlags = encoder.reverseFlags(encoder.flagsDefault(true, true)); assertTrue(encoder.isForward(swappedFlags)); assertTrue(encoder.isBackward(swappedFlags)); swappedFlags = encoder.reverseFlags(encoder.flagsDefault(true, false)); assertFalse(encoder.isForward(swappedFlags)); assertTrue(encoder.isBackward(swappedFlags)); assertEquals(0, encoder.reverseFlags(0)); }
@Test public void testMaxValue() { EncodedDoubleValue instance1 = new EncodedDoubleValue("test1", 0, 8, 0.5, 60, 100); long flags = instance1.setDoubleValue(0, instance1.getMaxValue()); assertEquals(100, instance1.getDoubleValue(flags), 1e-1); CarFlagEncoder carEncoder = new CarFlagEncoder(10, 0.5, 0); new EncodingManager(carEncoder); ReaderWay way = new ReaderWay(1); way.setTag("highway", "motorway_link"); way.setTag("maxspeed", "70 mph"); flags = carEncoder.handleWayTags(way, 1, 0); // double speed = AbstractFlagEncoder.parseSpeed("70 mph"); flags = carEncoder.reverseFlags(flags); assertEquals(101.5, carEncoder.getSpeed(flags), 1e-1); }
@Test public void testMaxValue() { CarFlagEncoder instance = new CarFlagEncoder(10, 0.5, 0); EncodingManager em = new EncodingManager(instance); ReaderWay way = new ReaderWay(1); way.setTag("highway", "motorway_link"); way.setTag("maxspeed", "60 mph"); long flags = instance.handleWayTags(way, 1, 0); // double speed = AbstractFlagEncoder.parseSpeed("60 mph"); // => 96.56 * 0.9 => 86.9 assertEquals(86.9, instance.getSpeed(flags), 1e-1); flags = instance.reverseFlags(flags); assertEquals(86.9, instance.getSpeed(flags), 1e-1); // test that maxPossibleValue is not exceeded way = new ReaderWay(2); way.setTag("highway", "motorway_link"); way.setTag("maxspeed", "70 mph"); flags = instance.handleWayTags(way, 1, 0); assertEquals(101.5, instance.getSpeed(flags), .1); }
@Override public long reverseFlags(long flags) { // swap access flags = super.reverseFlags(flags); // swap speeds double otherValue = reverseSpeedEncoder.getDoubleValue(flags); flags = setReverseSpeed(flags, speedEncoder.getDoubleValue(flags)); return setSpeed(flags, otherValue); }
@Override public long reverseFlags( long flags ) { // swap access flags = super.reverseFlags(flags); // swap speeds double otherValue = reverseSpeedEncoder.getDoubleValue(flags); flags = setReverseSpeed(flags, speedEncoder.getDoubleValue(flags)); return setSpeed(flags, otherValue); }
@Override public long reverseFlags(long flags) { // swap access flags = super.reverseFlags(flags); // swap speeds double otherValue = reverseSpeedEncoder.getDoubleValue(flags); flags = setReverseSpeed(flags, speedEncoder.getDoubleValue(flags)); return setSpeed(flags, otherValue); }