Search in sources :

Example 16 with GraphModel

use of org.gephi.graph.api.GraphModel 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)

Example 17 with GraphModel

use of org.gephi.graph.api.GraphModel 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 18 with GraphModel

use of org.gephi.graph.api.GraphModel 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 19 with GraphModel

use of org.gephi.graph.api.GraphModel 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 20 with GraphModel

use of org.gephi.graph.api.GraphModel 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)

Aggregations

GraphModel (org.gephi.graph.api.GraphModel)235 Node (org.gephi.graph.api.Node)169 Test (org.testng.annotations.Test)168 UndirectedGraph (org.gephi.graph.api.UndirectedGraph)115 GraphController (org.gephi.graph.api.GraphController)105 DirectedGraph (org.gephi.graph.api.DirectedGraph)92 Edge (org.gephi.graph.api.Edge)80 Graph (org.gephi.graph.api.Graph)57 HashMap (java.util.HashMap)52 Column (org.gephi.graph.api.Column)16 LinkedList (java.util.LinkedList)12 ArrayList (java.util.ArrayList)11 FilterBuilder (org.gephi.filters.spi.FilterBuilder)6 GraphView (org.gephi.graph.api.GraphView)6 XMLStreamException (javax.xml.stream.XMLStreamException)5 IOException (java.io.IOException)4 AppearanceController (org.gephi.appearance.api.AppearanceController)4 AppearanceModel (org.gephi.appearance.api.AppearanceModel)4 TimeFormat (org.gephi.graph.api.TimeFormat)4 Element (org.gephi.graph.api.Element)3