@Test public void testCompatibilityBug() { EncodingManager manager2 = new EncodingManager(FlagEncoderFactory.DEFAULT, "bike2", 8); ReaderWay osmWay = new ReaderWay(1); osmWay.setTag("highway", "footway"); osmWay.setTag("name", "test"); BikeFlagEncoder singleBikeEnc = (BikeFlagEncoder) manager2.getEncoder("bike2"); long flags = manager2.handleWayTags(osmWay, singleBikeEnc.acceptBit, 0); double singleSpeed = singleBikeEnc.getSpeed(flags); assertEquals(4, singleSpeed, 1e-3); assertEquals(singleSpeed, singleBikeEnc.getReverseSpeed(flags), 1e-3); EncodingManager manager = new EncodingManager(FlagEncoderFactory.DEFAULT, "bike2,bike,foot", 8); FootFlagEncoder foot = (FootFlagEncoder) manager.getEncoder("foot"); BikeFlagEncoder bike = (BikeFlagEncoder) manager.getEncoder("bike2"); long acceptBits = foot.acceptBit | bike.acceptBit; flags = manager.handleWayTags(osmWay, acceptBits, 0); assertEquals(singleSpeed, bike.getSpeed(flags), 1e-2); assertEquals(singleSpeed, bike.getReverseSpeed(flags), 1e-2); assertEquals(5, foot.getSpeed(flags), 1e-2); assertEquals(5, foot.getReverseSpeed(flags), 1e-2); }