@Override
    public Path<V, E> toImmutable() {
        return new DefaultPath<>(edges, cost);
    }
@Test
    public void toImmutable() {
        MutablePath<TestVertex, TestEdge> p = new DefaultMutablePath<>();
        p.appendEdge(new TestEdge(A, B));
        p.appendEdge(new TestEdge(B, C));
        validatePath(p, A, C, 2);

        assertEquals("immutables should equal", p.toImmutable(), p.toImmutable());
        validatePath(p.toImmutable(), A, C, 2);
    }