CategoryPartitionAddEdgeMultiGraph.java
package org.graphstream.graph.implementations;
import static org.junit.Assert.*;
import java.util.Random;
import org.databene.benerator.anno.Source;
import org.databene.feed4junit.Feeder;
import org.graphstream.graph.Edge;
import org.graphstream.graph.IdAlreadyInUseException;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
@RunWith(Feeder.class)
public class CategoryPartitionAddEdgeMultiGraph {
// idExistance,idValue,graphNrNodes,graphStrictChecking,
// graphNrEdges,graphAutoCreate,sourceEx
@Rule
public ExpectedException exception = ExpectedException.none();
@Test(expected=IdAlreadyInUseException.class)
@Source("csvFiles/MultigraphAddEdge/CategoryPartitionAddEdge01.csv")
public void strtCheckingException(Boolean idExistance, String idValue, String nrNodes,
Boolean strictChecking, String nrEdges, Boolean autoCreate,
Boolean sourceEx, Boolean sourceEqTarget,
Boolean sourceConnToTarget, Boolean targetExistance) {
MultiGraph mg = new MultiGraph("myGraph", strictChecking, autoCreate);
int numOfNodes = 10;
for (int i = 0; i < numOfNodes; i++) {
mg.addNode("node"+i);
}
mg.addEdge("e1", "node1", "node2");
mg.addEdge("e2", "node3", "node4");
mg.addEdge("e3", "node2", "node4");
mg.addEdge("e4", "node3", "node5");
mg.addEdge("e5", "node2", "node1");
//add an edge with existing id
mg.addEdge("e1", "node1", "node6");
}
@Test
@Source("csvFiles/MultigraphAddEdge/CategoryPartitionAddEdge02.csv")
public void strtCheckNullCreation(Boolean idExistance, String idValue, String nrNodes,
Boolean strictChecking, String nrEdges, Boolean autoCreate,
Boolean sourceEx, Boolean sourceEqTarget,
Boolean sourceConnToTarget, Boolean targetExistance){
MultiGraph mg = new MultiGraph("myGraph", strictChecking, autoCreate);
if(nrNodes.equals("many")){
int numOfNodes = 10;
for (int i = 0; i < numOfNodes; i++) {
mg.addNode("node"+i);
}
}
if(nrEdges.equals("many")){
mg.addEdge("e1", "node1", "node2");
mg.addEdge("e2", "node3", "node4");
mg.addEdge("e3", "node2", "node4");
mg.addEdge("e4", "node3", "node5");
mg.addEdge("e5", "node2", "node1");
}
Edge e = mg.addEdge("e6", "node10", "node11");
assertEquals(null, e);
}
@Test
@Source("csvFiles/MultigraphAddEdge/CategoryPartitionAddEdge03.csv")
public void strtCheckExixstingEdgeReturn(Boolean idExistance, String idValue, String nrNodes,
Boolean strictChecking, String nrEdges, Boolean autoCreate,
Boolean sourceEx, Boolean sourceEqTarget,
Boolean sourceConnToTarget, Boolean targetExistance){
MultiGraph mg = new MultiGraph("myGraph", strictChecking, autoCreate);
int numOfNodes = 10;
for (int i = 0; i < numOfNodes; i++) {
mg.addNode("node"+i);
}
mg.addEdge("e1", "node1", "node2");
mg.addEdge("e2", "node3", "node4");
mg.addEdge("e3", "node2", "node4");
mg.addEdge("e4", "node3", "node5");
mg.addEdge("e5", "node2", "node1");
Edge e;
e = mg.addEdge("e1", "node1", "node2");
assertEquals(mg.getEdge("e1"), e);
}
@Test
@Source("csvFiles/MultigraphAddEdge/CategoryPartitionAddEdge04.csv")
public void edgeCreation(Boolean idExistance, String idValue, String nrNodes,
Boolean strictChecking, String nrEdges, Boolean autoCreate,
Boolean sourceEx, Boolean sourceEqTarget,
Boolean sourceConnToTarget, Boolean targetExistance){
MultiGraph mg = new MultiGraph("myGraph", strictChecking, autoCreate);
int numOfNodes = 10;
for (int i = 0; i < numOfNodes; i++) {
mg.addNode("node"+i);
}
mg.addEdge("e1", "node1", "node2");
mg.addEdge("e2", "node3", "node4");
mg.addEdge("e3", "node2", "node4");
mg.addEdge("e4", "node3", "node5");
mg.addEdge("e5", "node2", "node1");
if(sourceConnToTarget){
mg.addEdge("ePre", "node1", "node1");
}
Edge e;
if(sourceEx){
e = mg.addEdge("e10", "node1", "node1");
}else{
e = mg.addEdge("e10", "node10", "node10");
}
assertEquals(mg.getEdge("e10"), e);
}
}
//System.out.println("idEx::"+idExistance+"::idVal::"+idValue+"::nrNod::"+nrNodes+"::strCheck::"+strictChecking+"::nrEd::"+nrEdges+
// "::autoC::"+autoCreate+"::sorcEx::"+sourceEx+"::sEquTar::"+sourceEqTarget+"::targetExistance::"+targetExistance+"::sourceDeg::"+sourceDeg+
// "::sourceConnTar::"+sourceConnToTarget+"::out::"+outcome);