use of org.gephi.graph.api.DirectedGraph in project gephi by gephi.
the class DegreeNGTest method testDirectedPathGraphDegree.
@Test
public void testDirectedPathGraphDegree() {
GraphModel graphModel = GraphGenerator.generatePathDirectedGraph(2);
DirectedGraph graph = graphModel.getDirectedGraph();
Node n1 = graph.getNode("0");
Node n2 = graph.getNode("1");
Degree d = new Degree();
int inDegree1 = d.calculateInDegree(graph, n1);
int inDegree2 = d.calculateInDegree(graph, n2);
int outDegree1 = d.calculateOutDegree(graph, n1);
double avDegree = d.calculateAverageDegree(graph, true, false);
assertEquals(inDegree1, 0);
assertEquals(inDegree2, 1);
assertEquals(outDegree1, 1);
assertEquals(avDegree, 0.5);
}
use of org.gephi.graph.api.DirectedGraph in project gephi by gephi.
the class DegreeNGTest method testSelfLoopDirectedGraphDegree.
@Test
public void testSelfLoopDirectedGraphDegree() {
GraphModel graphModel = GraphGenerator.generateSelfLoopDirectedGraph(1);
DirectedGraph graph = graphModel.getDirectedGraph();
Node n = graph.getNode("0");
Degree d = new Degree();
assertEquals(d.calculateDegree(graph, n), 2);
assertEquals(d.calculateInDegree(graph, n), 1);
assertEquals(d.calculateOutDegree(graph, n), 1);
}
use of org.gephi.graph.api.DirectedGraph 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.DirectedGraph 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.DirectedGraph 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