@Override
    public SccResult<V, E> search(Graph<V, E> graph, EdgeWeigher<V, E> weigher) {
        SccResult<V, E> result = new SccResult<>(graph);
        for (V vertex : graph.getVertexes()) {
            VertexData data = result.data(vertex);
            if (data == null) {
                connect(graph, vertex, weigher, result);
            }
        }
        return result.build();
    }
@Test
    public void basic() {
        graph = new AdjacencyListsGraph<>(vertexes(), edges());
        TarjanGraphSearch<TestVertex, TestEdge> gs = new TarjanGraphSearch<>();
        SccResult<TestVertex, TestEdge> result = gs.search(graph, null);
        validate(result, 6);
    }