Search in sources :

Example 1 with UndirectedGraph

use of org.gephi.graph.api.UndirectedGraph in project gephi by gephi.

the class ClusteringCoefficientNGTest method testSpecial3UndirectedGraphClusteringCoefficient.

@Test
public void testSpecial3UndirectedGraphClusteringCoefficient() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    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);
}
Also used : Node(org.gephi.graph.api.Node) Graph(org.gephi.graph.api.Graph) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) DirectedGraph(org.gephi.graph.api.DirectedGraph) GraphModel(org.gephi.graph.api.GraphModel) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Example 2 with UndirectedGraph

use of org.gephi.graph.api.UndirectedGraph in project gephi by gephi.

the class EigenvectorCentralityNGTest method testNullGraphEigenvectorCentrality.

@Test
public void testNullGraphEigenvectorCentrality() {
    GraphModel graphModel = GraphGenerator.generateNullUndirectedGraph(5);
    UndirectedGraph graph = graphModel.getUndirectedGraph();
    EigenvectorCentrality ec = new EigenvectorCentrality();
    ec.setDirected(false);
    double[] centralities = new double[5];
    HashMap<Integer, Node> indicies = new HashMap();
    HashMap<Node, Integer> invIndicies = new HashMap();
    ec.fillIndiciesMaps(graph, centralities, indicies, invIndicies);
    ec.calculateEigenvectorCentrality(graph, centralities, indicies, invIndicies, false, 100);
    Node n2 = graph.getNode("1");
    int index = invIndicies.get(n2);
    double ec2 = centralities[index];
    assertEquals(ec2, 0.0);
}
Also used : HashMap(java.util.HashMap) GraphModel(org.gephi.graph.api.GraphModel) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) Node(org.gephi.graph.api.Node) Test(org.testng.annotations.Test)

Example 3 with UndirectedGraph

use of org.gephi.graph.api.UndirectedGraph in project gephi by gephi.

the class EigenvectorCentralityNGTest method testTwoConnectedNodesEigenvectorCentrality.

@Test
public void testTwoConnectedNodesEigenvectorCentrality() {
    GraphModel graphModel = GraphGenerator.generateCompleteUndirectedGraph(2);
    UndirectedGraph graph = graphModel.getUndirectedGraph();
    EigenvectorCentrality ec = new EigenvectorCentrality();
    double[] centralities = new double[2];
    HashMap<Integer, Node> indicies = new HashMap();
    HashMap<Node, Integer> invIndicies = new HashMap();
    ec.fillIndiciesMaps(graph, centralities, indicies, invIndicies);
    ec.calculateEigenvectorCentrality(graph, centralities, indicies, invIndicies, false, 100);
    Node n1 = graph.getNode("0");
    int index = invIndicies.get(n1);
    double ec1 = centralities[index];
    assertEquals(ec1, 1.0);
}
Also used : HashMap(java.util.HashMap) GraphModel(org.gephi.graph.api.GraphModel) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) Node(org.gephi.graph.api.Node) Test(org.testng.annotations.Test)

Example 4 with UndirectedGraph

use of org.gephi.graph.api.UndirectedGraph in project gephi by gephi.

the class EigenvectorCentralityNGTest method testOneNodeEigenvectorCentrality.

@Test
public void testOneNodeEigenvectorCentrality() {
    GraphModel graphModel = GraphGenerator.generateNullUndirectedGraph(1);
    UndirectedGraph graph = graphModel.getUndirectedGraph();
    EigenvectorCentrality ec = new EigenvectorCentrality();
    double[] centralities = new double[1];
    HashMap<Integer, Node> indicies = new HashMap();
    HashMap<Node, Integer> invIndicies = new HashMap();
    ec.fillIndiciesMaps(graph, centralities, indicies, invIndicies);
    ec.calculateEigenvectorCentrality(graph, centralities, indicies, invIndicies, false, 100);
    Node n1 = graph.getNode("0");
    int index = invIndicies.get(n1);
    double ec1 = centralities[index];
    assertEquals(ec1, 0.0);
}
Also used : HashMap(java.util.HashMap) GraphModel(org.gephi.graph.api.GraphModel) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) Node(org.gephi.graph.api.Node) Test(org.testng.annotations.Test)

Example 5 with UndirectedGraph

use of org.gephi.graph.api.UndirectedGraph in project gephi by gephi.

the class EigenvectorCentralityNGTest method testSpecial3UndirectedGraphEigenvectorCentrlity.

@Test
public void testSpecial3UndirectedGraphEigenvectorCentrlity() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    UndirectedGraph undirectedGraph = graphModel.getUndirectedGraph();
    Node node1 = graphModel.factory().newNode("0");
    Node node2 = graphModel.factory().newNode("1");
    Node node3 = graphModel.factory().newNode("2");
    undirectedGraph.addNode(node1);
    undirectedGraph.addNode(node2);
    undirectedGraph.addNode(node3);
    Edge edge11 = graphModel.factory().newEdge(node1, node1, false);
    Edge edge12 = graphModel.factory().newEdge(node1, node2, false);
    Edge edge23 = graphModel.factory().newEdge(node2, node3, false);
    Edge edge33 = graphModel.factory().newEdge(node3, node3, false);
    undirectedGraph.addEdge(edge11);
    undirectedGraph.addEdge(edge12);
    undirectedGraph.addEdge(edge23);
    undirectedGraph.addEdge(edge33);
    UndirectedGraph graph = graphModel.getUndirectedGraph();
    EigenvectorCentrality ec = new EigenvectorCentrality();
    double[] centralities = new double[3];
    HashMap<Integer, Node> indicies = new HashMap();
    HashMap<Node, Integer> invIndicies = new HashMap();
    ec.fillIndiciesMaps(graph, centralities, indicies, invIndicies);
    ec.calculateEigenvectorCentrality(graph, centralities, indicies, invIndicies, false, 100);
    int index1 = invIndicies.get(node1);
    int index2 = invIndicies.get(node2);
    double ec1 = centralities[index1];
    double ec2 = centralities[index2];
    assertEquals(ec1, ec2);
}
Also used : HashMap(java.util.HashMap) Node(org.gephi.graph.api.Node) GraphModel(org.gephi.graph.api.GraphModel) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Aggregations

UndirectedGraph (org.gephi.graph.api.UndirectedGraph)104 GraphModel (org.gephi.graph.api.GraphModel)103 Node (org.gephi.graph.api.Node)101 Test (org.testng.annotations.Test)97 Edge (org.gephi.graph.api.Edge)46 GraphController (org.gephi.graph.api.GraphController)40 HashMap (java.util.HashMap)39 DirectedGraph (org.gephi.graph.api.DirectedGraph)13 LinkedList (java.util.LinkedList)10 Graph (org.gephi.graph.api.Graph)7