    @Test
    public void testExtract2() {

        Graph g = createGraph();
        g.edge(1, 2, 10, false);
        g.edge(2, 3, 20, false);
        EdgeExplorer explorer = g.createEdgeExplorer(carOutEdges);
        EdgeIterator iter = explorer.setBaseNode(1);
        iter.next();
        PathBidirRef pw = new PathBidirRef(g, new FastestWeighting(carEncoder));
        pw.sptEntry = new SPTEntry(iter.getEdge(), 2, 10);
        pw.sptEntry.parent = new SPTEntry(EdgeIterator.NO_EDGE, 1, 0);

        explorer = g.createEdgeExplorer(new DefaultEdgeFilter(carEncoder, true, false));
        iter = explorer.setBaseNode(3);
        iter.next();
        pw.edgeTo = new SPTEntry(iter.getEdge(), 2, 20);
        pw.edgeTo.parent = new SPTEntry(EdgeIterator.NO_EDGE, 3, 0);
        Path p = pw.extract();
        assertEquals(Helper.createTList(1, 2, 3), p.calcNodes());
        assertEquals(30, p.getDistance(), 1e-4);
    }