Search in sources :

Example 16 with Edge

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

the class GraphDensityNGTest method testSelfLoopNodeDensity.

@Test
public void testSelfLoopNodeDensity() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    UndirectedGraph undirectedGraph = graphModel.getUndirectedGraph();
    Node currentNode = graphModel.factory().newNode("0");
    undirectedGraph.addNode(currentNode);
    Edge currentEdge = graphModel.factory().newEdge(currentNode, currentNode, false);
    undirectedGraph.addEdge(currentEdge);
    Graph graph = graphModel.getGraph();
    GraphDensity d = new GraphDensity();
    double density = d.calculateDensity(graph, false);
    assertEquals(density, Double.POSITIVE_INFINITY);
}
Also used : 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) Node(org.gephi.graph.api.Node) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Example 17 with Edge

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

the class GraphDistanceNGTest method testSpecial1UndirectedGraphCloseness.

@Test
public void testSpecial1UndirectedGraphCloseness() {
    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");
    Node node7 = graphModel.factory().newNode("6");
    undirectedGraph.addNode(node1);
    undirectedGraph.addNode(node2);
    undirectedGraph.addNode(node3);
    undirectedGraph.addNode(node4);
    undirectedGraph.addNode(node5);
    undirectedGraph.addNode(node6);
    undirectedGraph.addNode(node7);
    Edge edge12 = graphModel.factory().newEdge(node1, node2, false);
    Edge edge13 = graphModel.factory().newEdge(node1, node3, false);
    Edge edge14 = graphModel.factory().newEdge(node1, node4, false);
    Edge edge15 = graphModel.factory().newEdge(node1, node5, false);
    Edge edge16 = graphModel.factory().newEdge(node1, node6, false);
    Edge edge27 = graphModel.factory().newEdge(node2, node7, false);
    Edge edge37 = graphModel.factory().newEdge(node3, node7, false);
    Edge edge47 = graphModel.factory().newEdge(node4, node7, false);
    Edge edge57 = graphModel.factory().newEdge(node5, node7, false);
    Edge edge67 = graphModel.factory().newEdge(node6, node7, false);
    undirectedGraph.addEdge(edge12);
    undirectedGraph.addEdge(edge13);
    undirectedGraph.addEdge(edge14);
    undirectedGraph.addEdge(edge15);
    undirectedGraph.addEdge(edge16);
    undirectedGraph.addEdge(edge27);
    undirectedGraph.addEdge(edge37);
    undirectedGraph.addEdge(edge47);
    undirectedGraph.addEdge(edge57);
    undirectedGraph.addEdge(edge67);
    GraphDistance d = new GraphDistance();
    d.initializeStartValues();
    UndirectedGraph hierarchicalUndirectedGraph = graphModel.getUndirectedGraph();
    HashMap<Node, Integer> indicies = d.createIndiciesMap(hierarchicalUndirectedGraph);
    HashMap<String, double[]> metricsMap = (HashMap) d.calculateDistanceMetrics(graphModel.getGraph(), indicies, false, false);
    double[] closeness = metricsMap.get(GraphDistance.CLOSENESS);
    int index7 = indicies.get(node7);
    double res = 1.0 / 1.1667;
    double diff = 0.01;
    assertEquals(closeness[index7], res, TOLERANCE);
}
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 18 with Edge

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

the class GraphDistanceNGTest method testDirectedStarOutGraphCloseness.

@Test
public void testDirectedStarOutGraphCloseness() {
    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);
    }
    GraphDistance d = new GraphDistance();
    d.initializeStartValues();
    HashMap<Node, Integer> indicies = d.createIndiciesMap(graphModel.getGraph());
    HashMap<String, double[]> metricsMap = (HashMap) d.calculateDistanceMetrics(graphModel.getGraph(), indicies, true, false);
    double[] closeness = metricsMap.get(GraphDistance.CLOSENESS);
    Node n1 = directedGraph.getNode("0");
    Node n6 = directedGraph.getNode("5");
    int index1 = indicies.get(n1);
    int index6 = indicies.get(n6);
    assertEquals(closeness[index1], 1.0, TOLERANCE);
    assertEquals(closeness[index6], 0.0, TOLERANCE);
}
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 Edge

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

the class Hits method updateAutorithy.

void updateAutorithy(Graph graph, double[] newValues, double[] hubValues, boolean isDirected, Map<Node, Integer> indices) {
    double norm = 0;
    for (Node q : indices.keySet()) {
        double auth = 0;
        EdgeIterable edge_iter;
        if (isDirected) {
            edge_iter = ((DirectedGraph) graph).getInEdges(q);
        } else {
            edge_iter = graph.getEdges(q);
        }
        for (Edge edge : edge_iter) {
            if (!edge.isSelfLoop()) {
                Node p = graph.getOpposite(q, edge);
                auth += hubValues[indices.get(p)];
            }
        }
        newValues[indices.get(q)] = auth;
        norm += auth * auth;
        if (isCanceled) {
            return;
        }
    }
    norm = Math.sqrt(norm);
    if (norm > 0) {
        for (int i = 0; i < newValues.length; i++) {
            newValues[i] = newValues[i] / norm;
        }
    }
}
Also used : EdgeIterable(org.gephi.graph.api.EdgeIterable) Node(org.gephi.graph.api.Node) Edge(org.gephi.graph.api.Edge)

Example 20 with Edge

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

the class GraphDistanceNGTest method testSpecial1DirectedGraphHarmonicCloseness.

@Test
public void testSpecial1DirectedGraphHarmonicCloseness() {
    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 edge13 = graphModel.factory().newEdge(node1, node3);
    Edge edge32 = graphModel.factory().newEdge(node3, node2);
    Edge edge21 = graphModel.factory().newEdge(node2, node1);
    Edge edge34 = graphModel.factory().newEdge(node3, node4);
    Edge edge45 = graphModel.factory().newEdge(node4, node5);
    Edge edge53 = graphModel.factory().newEdge(node5, node3);
    directedGraph.addEdge(edge13);
    directedGraph.addEdge(edge32);
    directedGraph.addEdge(edge21);
    directedGraph.addEdge(edge34);
    directedGraph.addEdge(edge45);
    directedGraph.addEdge(edge53);
    GraphDistance d = new GraphDistance();
    d.initializeStartValues();
    HashMap<Node, Integer> indicies = d.createIndiciesMap(graphModel.getGraph());
    HashMap<String, double[]> metricsMap = (HashMap) d.calculateDistanceMetrics(graphModel.getGraph(), indicies, true, false);
    double[] harmonic = metricsMap.get(GraphDistance.HARMONIC_CLOSENESS);
    int index2 = indicies.get(node2);
    int index3 = indicies.get(node3);
    assertEquals(harmonic[index2], (1.0 + 1.0 / 2.0 + 1.0 / 3.0 + 1.0 / 4.0) / 4.0, TOLERANCE);
    assertEquals(harmonic[index3], (1.0 / 2.0 + 1.0 + 1.0 + 1.0 / 2.0) / 4.0, TOLERANCE);
}
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)

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