Search in sources :

Example 6 with Edge

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

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

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

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

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

Edge (org.gephi.graph.api.Edge)151 Node (org.gephi.graph.api.Node)122 GraphModel (org.gephi.graph.api.GraphModel)84 GraphController (org.gephi.graph.api.GraphController)79 Test (org.testng.annotations.Test)67 UndirectedGraph (org.gephi.graph.api.UndirectedGraph)46 DirectedGraph (org.gephi.graph.api.DirectedGraph)44 Graph (org.gephi.graph.api.Graph)31 HashMap (java.util.HashMap)26 EdgeIterable (org.gephi.graph.api.EdgeIterable)18 LinkedList (java.util.LinkedList)13 Column (org.gephi.graph.api.Column)11 NodeIterable (org.gephi.graph.api.NodeIterable)9 ArrayList (java.util.ArrayList)8 Table (org.gephi.graph.api.Table)6 GraphView (org.gephi.graph.api.GraphView)5 HashSet (java.util.HashSet)4 Interval (org.gephi.graph.api.Interval)4 TimeFormat (org.gephi.graph.api.TimeFormat)4 DateTimeZone (org.joda.time.DateTimeZone)4