Search in sources :

Example 26 with Node

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

the class EigenvectorCentralityNGTest method testCompleteUndirectedGraphEigenvectorCentrality.

@Test
public void testCompleteUndirectedGraphEigenvectorCentrality() {
    GraphModel graphModel = GraphGenerator.generateCompleteUndirectedGraph(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 n1 = graph.getNode("0");
    Node n3 = graph.getNode("2");
    int index1 = invIndicies.get(n1);
    int index3 = invIndicies.get(n3);
    double ec1 = centralities[index1];
    double ec3 = centralities[index3];
    assertEquals(ec1, 1.0);
    assertEquals(ec3, 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 27 with Node

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

the class EigenvectorCentralityNGTest method testDirectedStarOutEigenvectorCentrality.

@Test
public void testDirectedStarOutEigenvectorCentrality() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    DirectedGraph directedGraph = graphModel.getDirectedGraph();
    Node firstNode = graphModel.factory().newNode("0");
    directedGraph.addNode(firstNode);
    for (int i = 1; i <= 5; i++) {
        Node currentNode = graphModel.factory().newNode(((Integer) i).toString());
        directedGraph.addNode(currentNode);
        Edge currentEdge = graphModel.factory().newEdge(firstNode, currentNode);
        directedGraph.addEdge(currentEdge);
    }
    DirectedGraph graph = graphModel.getDirectedGraph();
    EigenvectorCentrality ec = new EigenvectorCentrality();
    double[] centralities = new double[6];
    HashMap<Integer, Node> indicies = new HashMap();
    HashMap<Node, Integer> invIndicies = new HashMap();
    ec.fillIndiciesMaps(graph, centralities, indicies, invIndicies);
    ec.calculateEigenvectorCentrality(graph, centralities, indicies, invIndicies, true, 100);
    Node n1 = graph.getNode("0");
    Node n2 = graph.getNode("1");
    int index1 = invIndicies.get(n1);
    int index2 = invIndicies.get(n2);
    double ec1 = centralities[index1];
    double ec2 = centralities[index2];
    assertEquals(ec1, 0.0);
    assertEquals(ec2, 1.0);
}
Also used : HashMap(java.util.HashMap) Node(org.gephi.graph.api.Node) DirectedGraph(org.gephi.graph.api.DirectedGraph) GraphModel(org.gephi.graph.api.GraphModel) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Example 28 with Node

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

the class EigenvectorCentralityNGTest method testSpecial1DirectedEigenvectorCentrality.

@Test
public void testSpecial1DirectedEigenvectorCentrality() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    DirectedGraph directedGraph = graphModel.getDirectedGraph();
    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");
    directedGraph.addNode(node1);
    directedGraph.addNode(node2);
    directedGraph.addNode(node3);
    directedGraph.addNode(node4);
    directedGraph.addNode(node5);
    Edge edge12 = graphModel.factory().newEdge(node1, node2);
    Edge edge23 = graphModel.factory().newEdge(node2, node3);
    Edge edge31 = graphModel.factory().newEdge(node3, node1);
    Edge edge42 = graphModel.factory().newEdge(node4, node2);
    Edge edge54 = graphModel.factory().newEdge(node5, node4);
    directedGraph.addEdge(edge12);
    directedGraph.addEdge(edge23);
    directedGraph.addEdge(edge31);
    directedGraph.addEdge(edge42);
    directedGraph.addEdge(edge54);
    DirectedGraph graph = graphModel.getDirectedGraph();
    EigenvectorCentrality ec = new EigenvectorCentrality();
    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, true, 1000);
    int index1 = invIndicies.get(node1);
    int index2 = invIndicies.get(node2);
    int index4 = invIndicies.get(node4);
    int index5 = invIndicies.get(node5);
    double ec1 = centralities[index1];
    double ec2 = centralities[index2];
    double ec4 = centralities[index4];
    double ec5 = centralities[index5];
    double diff = 0.01;
    double res0 = 0.;
    double res1 = 1.;
    assertEquals(ec5, 0.0);
    assertTrue(Math.abs(ec4 - res0) < diff);
    assertTrue(Math.abs(ec1 - res1) < diff);
    assertTrue(Math.abs(ec1 - ec2) < diff);
}
Also used : HashMap(java.util.HashMap) Node(org.gephi.graph.api.Node) DirectedGraph(org.gephi.graph.api.DirectedGraph) GraphModel(org.gephi.graph.api.GraphModel) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Example 29 with Node

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

the class EigenvectorCentralityNGTest method testPathDirectedGraphEigenvectorCentrality.

@Test
public void testPathDirectedGraphEigenvectorCentrality() {
    GraphModel graphModel = GraphGenerator.generatePathDirectedGraph(4);
    DirectedGraph graph = graphModel.getDirectedGraph();
    EigenvectorCentrality ec = new EigenvectorCentrality();
    double[] centralities = new double[4];
    HashMap<Integer, Node> indicies = new HashMap();
    HashMap<Node, Integer> invIndicies = new HashMap();
    ec.fillIndiciesMaps(graph, centralities, indicies, invIndicies);
    ec.calculateEigenvectorCentrality(graph, centralities, indicies, invIndicies, true, 100);
    Node n1 = graph.getNode("0");
    Node n4 = graph.getNode("3");
    int index1 = invIndicies.get(n1);
    int index4 = invIndicies.get(n4);
    double ec1 = centralities[index1];
    double ec4 = centralities[index4];
    assertEquals(ec1, 0.0);
    assertEquals(ec4, 1.0);
}
Also used : DirectedGraph(org.gephi.graph.api.DirectedGraph) HashMap(java.util.HashMap) GraphModel(org.gephi.graph.api.GraphModel) Node(org.gephi.graph.api.Node) Test(org.testng.annotations.Test)

Example 30 with Node

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

the class EigenvectorCentralityNGTest method testSpecial1UndirectedGraphEigenvectorCentrlity.

@Test
public void testSpecial1UndirectedGraphEigenvectorCentrlity() {
    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");
    undirectedGraph.addNode(node1);
    undirectedGraph.addNode(node2);
    undirectedGraph.addNode(node3);
    undirectedGraph.addNode(node4);
    Edge edge12 = graphModel.factory().newEdge(node1, node2, false);
    Edge edge23 = graphModel.factory().newEdge(node2, node3, false);
    Edge edge34 = graphModel.factory().newEdge(node3, node4, false);
    Edge edge13 = graphModel.factory().newEdge(node1, node3, false);
    Edge edge24 = graphModel.factory().newEdge(node2, node4, false);
    undirectedGraph.addEdge(edge12);
    undirectedGraph.addEdge(edge23);
    undirectedGraph.addEdge(edge34);
    undirectedGraph.addEdge(edge13);
    undirectedGraph.addEdge(edge24);
    UndirectedGraph graph = graphModel.getUndirectedGraph();
    EigenvectorCentrality ec = new EigenvectorCentrality();
    double[] centralities = new double[4];
    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);
    int index3 = invIndicies.get(node3);
    double ec1 = centralities[index1];
    double ec2 = centralities[index2];
    double ec3 = centralities[index3];
    assertEquals(ec2, ec3);
    assertNotEquals(ec1, ec2);
    assertEquals(ec3, 1.0);
}
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

Node (org.gephi.graph.api.Node)314 GraphModel (org.gephi.graph.api.GraphModel)173 Test (org.testng.annotations.Test)156 Edge (org.gephi.graph.api.Edge)122 UndirectedGraph (org.gephi.graph.api.UndirectedGraph)106 DirectedGraph (org.gephi.graph.api.DirectedGraph)83 GraphController (org.gephi.graph.api.GraphController)83 HashMap (java.util.HashMap)66 Graph (org.gephi.graph.api.Graph)51 NodeIterable (org.gephi.graph.api.NodeIterable)23 LinkedList (java.util.LinkedList)22 Column (org.gephi.graph.api.Column)22 EdgeIterable (org.gephi.graph.api.EdgeIterable)16 Table (org.gephi.graph.api.Table)10 HashSet (java.util.HashSet)8 ArrayList (java.util.ArrayList)7 Color (java.awt.Color)6 GraphElementsController (org.gephi.datalab.api.GraphElementsController)6 DataTablesController (org.gephi.datalab.api.datatables.DataTablesController)5 Interval (org.gephi.graph.api.Interval)5