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);
}
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);
}
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);
}
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);
}
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);
}
Aggregations