public HashMap<String, Double> computeClusteringCoefficient(Graph graph, ArrayWrapper[] currentNetwork,
                                                                int[] currentTriangles, double[] currentNodeClustering,
                                                                boolean directed) {
        HashMap<String, Double> resultValues = new HashMap<>();

        if (directed) {
            double avClusteringCoefficient = bruteForce(graph);
            resultValues.put("clusteringCoefficient", avClusteringCoefficient);
            return resultValues;
        } else {
            initStartValues(graph);
            resultValues = computeTriangles(graph, currentNetwork, currentTriangles, currentNodeClustering, directed);
            return resultValues;

        }
    }
@Test
    public void testSpecial3UndirectedGraphClusteringCoefficient() {
        GraphModel graphModel = GraphModel.Factory.newInstance();
        UndirectedGraph undirectedGraph = graphModel.getUndirectedGraph();
        Node node1 = graphModel.factory().newNode("0");
        Node node2 = graphModel.factory().newNode("1");
        Node node3 = graphModel.factory().newNode("2");
        Node node4 = graphModel.factory().newNode("3");
        Node node5 = graphModel.factory().newNode("4");
        Node node6 = graphModel.factory().newNode("5");
        undirectedGraph.addNode(node1);
        undirectedGraph.addNode(node2);
        undirectedGraph.addNode(node3);
        undirectedGraph.addNode(node4);
        undirectedGraph.addNode(node5);
        undirectedGraph.addNode(node6);
        Edge edge12 = graphModel.factory().newEdge(node1, node2, false);
        Edge edge23 = graphModel.factory().newEdge(node2, node3, false);
        Edge edge31 = graphModel.factory().newEdge(node3, node1, false);
        Edge edge14 = graphModel.factory().newEdge(node1, node4, false);
        Edge edge25 = graphModel.factory().newEdge(node2, node5, false);
        Edge edge36 = graphModel.factory().newEdge(node3, node6, false);
        undirectedGraph.addEdge(edge12);
        undirectedGraph.addEdge(edge23);
        undirectedGraph.addEdge(edge31);
        undirectedGraph.addEdge(edge14);
        undirectedGraph.addEdge(edge25);
        undirectedGraph.addEdge(edge36);

        Graph graph = graphModel.getGraph();
        ClusteringCoefficient cc = new ClusteringCoefficient();

        ArrayWrapper[] network = new ArrayWrapper[6];
        int[] triangles = new int[6];
        double[] nodeClustering = new double[6];

        HashMap<String, Double> results =
            cc.computeClusteringCoefficient(graph, network, triangles, nodeClustering, false);

        double cl1 = nodeClustering[0];

        double res1 = 0.333;
        double diff = 0.01;

        assertTrue(Math.abs(cl1 - res1) < diff);

    }