@Test
public void testBFS()
{

    BreadthFirstSearch bfs = new BreadthFirstSearch()
    {
        @Override
        public boolean goFurther( int v )
        {
            counter++;
            assertTrue("v " + v + " is already contained in set. iteration:" + counter, !set.contains(v));
            set.add(v);
            list.add(v);
            return super.goFurther(v);
        }
    };
    Graph g = new GraphBuilder(new EncodingManager("CAR")).create();
    g.edge(0, 1, 85, true);
    g.edge(0, 2, 217, true);
    g.edge(0, 3, 173, true);
    g.edge(0, 5, 173, true);
    g.edge(1, 6, 75, true);
    g.edge(2, 7, 51, true);
    g.edge(3, 8, 23, true);
    g.edge(4, 8, 793, true);
    g.edge(8, 10, 343, true);
    g.edge(6, 9, 72, true);
    g.edge(9, 10, 8, true);
    g.edge(5, 10, 1, true);
    bfs.start(g.createEdgeExplorer(), 0);
    assertTrue(counter > 0);
    assertEquals(g.getNodes(), counter);
    assertEquals("{0, 5, 3, 2, 1, 10, 8, 7, 6, 9, 4}", list.toString());
}