@Test
public void internalDisconnect() {
GraphHopperStorage storage = createGHStorage();
BaseGraph graph = (BaseGraph) storage.getGraph(Graph.class);
EdgeIteratorState iter0 = graph.edge(0, 1, 10, true);
EdgeIteratorState iter2 = graph.edge(1, 2, 10, true);
EdgeIteratorState iter3 = graph.edge(0, 3, 10, true);
EdgeExplorer explorer = graph.createEdgeExplorer();
assertEquals(GHUtility.asSet(3, 1), GHUtility.getNeighbors(explorer.setBaseNode(0)));
assertEquals(GHUtility.asSet(2, 0), GHUtility.getNeighbors(explorer.setBaseNode(1)));
graph.edgeAccess.internalEdgeDisconnect(iter2.getEdge(), -1,
iter2.getBaseNode(), iter2.getAdjNode());
assertEquals(GHUtility.asSet(0), GHUtility.getNeighbors(explorer.setBaseNode(1)));
assertEquals(GHUtility.asSet(1), GHUtility.getNeighbors(explorer.setBaseNode(2)));
assertEquals(GHUtility.asSet(3, 1), GHUtility.getNeighbors(explorer.setBaseNode(0)));
graph.edgeAccess.internalEdgeDisconnect(iter0.getEdge(), (long) iter3.getEdge() * graph.edgeEntryBytes,
iter0.getBaseNode(), iter0.getAdjNode());
assertEquals(GHUtility.asSet(3), GHUtility.getNeighbors(explorer.setBaseNode(0)));
assertEquals(GHUtility.asSet(0), GHUtility.getNeighbors(explorer.setBaseNode(3)));
assertEquals(GHUtility.asSet(0), GHUtility.getNeighbors(explorer.setBaseNode(1)));
storage.close();
}