public Collection<Set<V>> computeMaxCliques() {
        lazyRun();
        return maximumCliques;
    }
@Test
    public void test6DisconnectedSubgraphsOfWholeGraph() {
        List<List<String>> groups = new ArrayList<>();
        for (int i = 0; i < 20; i++) {
            int j = i;
            int vertexCount = i + 10;
            List<String> vertices = IntStream.range(0, vertexCount).mapToObj(v -> j + "_" + v).collect(toList());
            groups.add(vertices);
        }

        Graph<String> graph = populateFullyConnectedGraph(groups.stream().flatMap(Collection::stream).collect(toList()));

        List<Integer> groupIndices = new ArrayList<>();
        while (groupIndices.size() < 6) {
            int rackIndex = RandomPicker.getInt(groups.size());
            if (!groupIndices.contains(rackIndex)) {
                groupIndices.add(rackIndex);
            }
        }

        groupIndices.sort(Comparator.comparingInt((ToIntFunction<Integer>) i -> groups.get(i).size()).reversed());

        for (String v1 : groups.get(groupIndices.get(0))) {
            for (String v2 : groups.get(groupIndices.get(5))) {
                graph.disconnect(v1, v2);
            }
        }

        for (String v1 : groups.get(groupIndices.get(1))) {
            for (String v2 : groups.get(groupIndices.get(4))) {
                graph.disconnect(v1, v2);
            }
        }

        for (String v1 : groups.get(groupIndices.get(2))) {
            for (String v2 : groups.get(groupIndices.get(3))) {
                graph.disconnect(v1, v2);
            }
        }

        Collection<Set<String>> maxCliques = new BronKerboschCliqueFinder<>(graph, 60, TimeUnit.SECONDS).computeMaxCliques();


        assumeFalse(maxCliques.isEmpty());

        Set<String> expectedClique = new HashSet<>();
        for (int i = 0; i < groups.size(); i++) {
            if (i != groupIndices.get(3) && i != groupIndices.get(4) && i != groupIndices.get(5)) {
                expectedClique.addAll(groups.get(i));
            }
        }

        assertEquals(1, maxCliques.size());
        assertEquals(expectedClique, maxCliques.iterator().next());
    }