@Test
public void testGetWeightIfAdvancedEncoder() {
FlagEncoder customEncoder = new Bike2WeightFlagEncoder();
EncodingManager em = new EncodingManager(customEncoder);
FastestWeighting weighting = new FastestWeighting(customEncoder);
GraphHopperStorage ghStorage = new GraphBuilder(em).setCHGraph(weighting).create();
ghStorage.edge(0, 2);
ghStorage.freeze();
CHGraphImpl lg = (CHGraphImpl) ghStorage.getGraph(CHGraph.class, weighting);
CHEdgeIteratorState sc1 = lg.shortcut(0, 1);
long flags = customEncoder.setProperties(10, false, true);
sc1.setFlags(flags);
sc1.setWeight(100.123);
assertEquals(100.123, lg.getEdgeIteratorState(sc1.getEdge(), sc1.getAdjNode()).getWeight(), 1e-3);
assertEquals(100.123, lg.getEdgeIteratorState(sc1.getEdge(), sc1.getBaseNode()).getWeight(), 1e-3);
assertEquals(100.123, ((CHEdgeIteratorState) GHUtility.getEdge(lg, sc1.getBaseNode(), sc1.getAdjNode())).getWeight(), 1e-3);
assertEquals(100.123, ((CHEdgeIteratorState) GHUtility.getEdge(lg, sc1.getAdjNode(), sc1.getBaseNode())).getWeight(), 1e-3);
sc1 = lg.shortcut(1, 0);
assertTrue(sc1.isShortcut());
sc1.setFlags(PrepareEncoder.getScDirMask());
sc1.setWeight(1.011011);
assertEquals(1.011011, sc1.getWeight(), 1e-3);
}