Search in sources :

Example 31 with Edge

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

the class HitsNGTest method testDirectedSpecial1GraphHits.

@Test
public void testDirectedSpecial1GraphHits() {
    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 edge14 = graphModel.factory().newEdge(node1, node4);
    Edge edge15 = graphModel.factory().newEdge(node1, node5);
    Edge edge24 = graphModel.factory().newEdge(node2, node4);
    Edge edge25 = graphModel.factory().newEdge(node2, node5);
    Edge edge34 = graphModel.factory().newEdge(node3, node4);
    Edge edge35 = graphModel.factory().newEdge(node3, node5);
    directedGraph.addEdge(edge14);
    directedGraph.addEdge(edge15);
    directedGraph.addEdge(edge24);
    directedGraph.addEdge(edge25);
    directedGraph.addEdge(edge34);
    directedGraph.addEdge(edge35);
    DirectedGraph graph = graphModel.getDirectedGraph();
    Hits hit = new Hits();
    double[] authority = new double[5];
    double[] hubs = new double[5];
    HashMap<Node, Integer> indices = hit.createIndicesMap(graph);
    hit.calculateHits(graph, hubs, authority, indices, true, EPSILON);
    Node n1 = graph.getNode("0");
    Node n2 = graph.getNode("1");
    Node n4 = graph.getNode("3");
    Node n5 = graph.getNode("4");
    int index1 = indices.get(n1);
    int index2 = indices.get(n2);
    int index4 = indices.get(n4);
    int index5 = indices.get(n5);
    double hub1 = hubs[index1];
    double hub4 = hubs[index4];
    double auth2 = authority[index2];
    double auth5 = authority[index5];
    assertEquals(hub1, 0.5773);
    assertEquals(hub4, 0.0);
    assertEquals(auth2, 0.0);
    assertEquals(auth5, 0.7071);
}
Also used : DirectedGraph(org.gephi.graph.api.DirectedGraph) GraphModel(org.gephi.graph.api.GraphModel) Node(org.gephi.graph.api.Node) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Example 32 with Edge

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

the class HitsNGTest method testDirectedStarOutGraphHits.

@Test
public void testDirectedStarOutGraphHits() {
    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();
    Hits hit = new Hits();
    double[] authority = new double[6];
    double[] hubs = new double[6];
    HashMap<Node, Integer> indices = hit.createIndicesMap(graph);
    hit.calculateHits(graph, hubs, authority, indices, true, EPSILON);
    Node n1 = graph.getNode("0");
    Node n3 = graph.getNode("2");
    int index1 = indices.get(n1);
    int index3 = indices.get(n3);
    double hub1 = hubs[index1];
    double hub3 = hubs[index3];
    double auth1 = authority[index1];
    double auth3 = authority[index3];
    assertEquals(hub1, 1.0);
    assertEquals(auth1, 0.0);
    assertEquals(hub3, 0.0);
    assertEquals(auth3, 0.4472);
}
Also used : DirectedGraph(org.gephi.graph.api.DirectedGraph) GraphModel(org.gephi.graph.api.GraphModel) Node(org.gephi.graph.api.Node) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Example 33 with Edge

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

the class GraphDistanceNGTest method testSpecial2UndirectedGraphRadius.

@Test
public void testSpecial2UndirectedGraphRadius() {
    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");
    Node node8 = graphModel.factory().newNode("7");
    undirectedGraph.addNode(node1);
    undirectedGraph.addNode(node2);
    undirectedGraph.addNode(node3);
    undirectedGraph.addNode(node4);
    undirectedGraph.addNode(node5);
    undirectedGraph.addNode(node6);
    undirectedGraph.addNode(node7);
    undirectedGraph.addNode(node8);
    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 edge45 = graphModel.factory().newEdge(node4, node5, false);
    Edge edge56 = graphModel.factory().newEdge(node5, node6, false);
    Edge edge67 = graphModel.factory().newEdge(node6, node7, false);
    Edge edge78 = graphModel.factory().newEdge(node7, node8, false);
    Edge edge81 = graphModel.factory().newEdge(node8, node1, false);
    Edge edge14 = graphModel.factory().newEdge(node1, node4, false);
    Edge edge85 = graphModel.factory().newEdge(node8, node5, false);
    undirectedGraph.addEdge(edge12);
    undirectedGraph.addEdge(edge23);
    undirectedGraph.addEdge(edge34);
    undirectedGraph.addEdge(edge45);
    undirectedGraph.addEdge(edge56);
    undirectedGraph.addEdge(edge67);
    undirectedGraph.addEdge(edge78);
    undirectedGraph.addEdge(edge81);
    undirectedGraph.addEdge(edge14);
    undirectedGraph.addEdge(edge85);
    GraphDistance d = new GraphDistance();
    d.initializeStartValues();
    UndirectedGraph hierarchicalUndirectedGraph = graphModel.getUndirectedGraph();
    HashMap<Node, Integer> indicies = d.createIndiciesMap(hierarchicalUndirectedGraph);
    d.calculateDistanceMetrics(graphModel.getGraph(), indicies, false, false);
    double radius = d.getRadius();
    assertEquals(radius, 3.0, TOLERANCE);
}
Also used : 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 34 with Edge

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

the class GraphDistanceNGTest method testSpecial1DirectedGraphCloseness.

@Test
public void testSpecial1DirectedGraphCloseness() {
    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[] closeness = metricsMap.get(GraphDistance.CLOSENESS);
    int index2 = indicies.get(node2);
    int index3 = indicies.get(node3);
    assertEquals(closeness[index2], 1.0 / 2.5, TOLERANCE);
    assertEquals(closeness[index3], 1.0 / 1.5, 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 35 with Edge

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

the class GraphDistanceNGTest method testSpecial2DirectedGraphDiameter.

@Test
public void testSpecial2DirectedGraphDiameter() {
    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 edge14 = graphModel.factory().newEdge(node1, node4);
    Edge edge23 = graphModel.factory().newEdge(node2, node3);
    Edge edge25 = graphModel.factory().newEdge(node2, node5);
    Edge edge35 = graphModel.factory().newEdge(node3, node5);
    Edge edge43 = graphModel.factory().newEdge(node4, node3);
    Edge edge51 = graphModel.factory().newEdge(node5, node1);
    Edge edge54 = graphModel.factory().newEdge(node5, node4);
    directedGraph.addEdge(edge12);
    directedGraph.addEdge(edge14);
    directedGraph.addEdge(edge23);
    directedGraph.addEdge(edge25);
    directedGraph.addEdge(edge35);
    directedGraph.addEdge(edge43);
    directedGraph.addEdge(edge51);
    directedGraph.addEdge(edge54);
    GraphDistance d = new GraphDistance();
    d.initializeStartValues();
    UndirectedGraph undirectedGraph = graphModel.getUndirectedGraph();
    HashMap<Node, Integer> indicies = d.createIndiciesMap(undirectedGraph);
    d.calculateDistanceMetrics(graphModel.getGraph(), indicies, true, false);
    double diameter = d.getDiameter();
    assertEquals(diameter, 4.0, TOLERANCE);
}
Also used : DirectedGraph(org.gephi.graph.api.DirectedGraph) GraphModel(org.gephi.graph.api.GraphModel) Node(org.gephi.graph.api.Node) 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