CategoryPartitionAddEdgeSingleGraph.java
package org.graphstream.graph.implementations;
import static org.junit.Assert.*;
import javax.validation.constraints.AssertTrue;
import org.databene.benerator.anno.Source;
import org.databene.feed4junit.Feeder;
import org.graphstream.graph.Edge;
import org.graphstream.graph.EdgeRejectedException;
import org.graphstream.graph.ElementNotFoundException;
import org.graphstream.graph.IdAlreadyInUseException;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.graphstream.graph.Node;
import org.graphstream.graph.implementations.SingleGraph;
@RunWith(Feeder.class)
public class CategoryPartitionAddEdgeSingleGraph {
//graphStrictChecking
//graphAutoCreate, sourceExistance, sourceEqTarget, sourceDegree
//sourceConnectedTarget, targetExistance
@Rule
public ExpectedException exception = ExpectedException.none();
//Test using AddEdge(String, String, String)
@Test
public void test1() {
SingleGraph sg = new SingleGraph("MyGraph", true, true);
//source do not exist
sg.addNode("N3");//target
exception.expect(ElementNotFoundException.class);
Edge e = sg.addEdge("E2","N1","N3");
fail();
}
@Test
public void test2() {
SingleGraph sg = new SingleGraph("MyGraph", true, false);
sg.addNode("N1");//source and target
sg.addNode("N2");
sg.addNode("N3");
sg.addEdge("E1","N1","N2");
sg.addEdge("E2","N1","N3");
Edge e = sg.addEdge("E3","N1","N1");
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
@Test
public void test3() {
SingleGraph sg = new SingleGraph("MyGraph", false, false);
sg.addNode("N1");//source and target
sg.addNode("N2");
sg.addNode("N3");
sg.addEdge("E1","N1","N2");
sg.addEdge("E2","N1","N3");
sg.addEdge("E3","N1","N1");
Edge e = sg.addEdge("E4","N1","N2");
assertTrue(e==null);
}
@Test
public void test4() {
SingleGraph sg = new SingleGraph("MyGraph", true, true);
sg.addNode("N1");//source
sg.addEdge("E1","N1","N1");
exception.expect(ElementNotFoundException.class);
Edge e = sg.addEdge("E3","N1","N2");
fail();
}
@Test
public void test5() {
SingleGraph sg = new SingleGraph("MyGraph", false, false);
Edge e = sg.addEdge("E1","N1","N2");
assertTrue(e==null);
}
@Test
public void test6() {
SingleGraph sg = new SingleGraph("MyGraph", false, true);
sg.addNode("N1");//source
sg.addNode("N2");//target
sg.addEdge("E1","N1","N2");
sg.addEdge("E2","N1","N1");
Edge e = sg.addEdge("E3","N1","N2");
assertTrue(e==null);
}
@Test
public void test7() {
SingleGraph sg = new SingleGraph("MyGraph", false, true);
sg.addNode("N1");//source
sg.addNode("N2");
sg.addEdge("E1","N1","N2");
sg.addEdge("E2","N1","N1");
Edge e = sg.addEdge("E3","N1","N3");
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N3");
}
@Test
public void test8() {
SingleGraph sg = new SingleGraph("MyGraph", false, false);
sg.addNode("N1");//source and target
sg.addNode("N2");
sg.addEdge("E1","N1","N2");
Edge e = sg.addEdge("E3","N1","N1");
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
@Test
public void test9() {
SingleGraph sg = new SingleGraph("MyGraph", true, true);
sg.addNode("N1");//source and target
Edge e = sg.addEdge("E3","N1","N1");
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
@Test
public void test10() {
exception.expect(IdAlreadyInUseException.class);
SingleGraph sg = new SingleGraph("MyGraph", true, true);
sg.addNode("N1");//source and target
sg.addEdge("E3","N1","N1");
Edge e = sg.addEdge("E3","N1","N1");
fail();
}
@Test
public void test11() {
exception.expect(IdAlreadyInUseException.class);
SingleGraph sg = new SingleGraph("MyGraph", true, true);
sg.addNode("N1");//source and target
sg.addEdge("E3","N1","N1");
Edge e = sg.addEdge("E3","N1","N1");
fail();
}
//Test using AddEdge(String, Node, Node)
@Test
public void test12() {
SingleGraph sg = new SingleGraph("MyGraph", true, false);
Node node1 = sg.addNode("N1");//source and target
Node node2 = sg.addNode("N2");
Node node3 = sg.addNode("N3");
sg.addEdge("E1",node1,node2);
sg.addEdge("E2",node1,node3);
Edge e = sg.addEdge("E3",node1,node1);
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
@Test
public void test13() {
SingleGraph sg = new SingleGraph("MyGraph", false, false);
Node node1 = sg.addNode("N1");//source
Node node2 = sg.addNode("N2");//target
Node node3 = sg.addNode("N3");
sg.addEdge("E1",node1,node2);
sg.addEdge("E2",node1,node3);
sg.addEdge("E1",node1,node1);
Edge e = sg.addEdge("E4",node1,node2);
assertTrue(e==null);
}
@Test
public void test14() {
SingleGraph sg = new SingleGraph("MyGraph", false, true);
Node node1 = sg.addNode("N1");//source
Node node2 = sg.addNode("N2");//target
sg.addEdge("E1",node1,node2);
sg.addEdge("E2",node1,node1);
Edge e = sg.addEdge("E3",node1,node1);
assertTrue(e==null);
}
@Test
public void test15() {
SingleGraph sg = new SingleGraph("MyGraph", false, false);
Node node1 = sg.addNode("N1");//source and target
Node node2 = sg.addNode("N2");
sg.addEdge("E1",node1,node2);
Edge e = sg.addEdge("E3",node1,node1);
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
@Test
public void test16() {
SingleGraph sg = new SingleGraph("MyGraph", true, true);
Node node1 = sg.addNode("N1");//source and target
Edge e = sg.addEdge("E3",node1,node1);
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
@Test
public void test17(){
SingleGraph sg = new SingleGraph("MyGraph", true, true);
Node node1 = sg.addNode("N1");//source and target
sg.addEdge("E3",node1,node1);
exception.expect(IdAlreadyInUseException.class);
Edge e = sg.addEdge("E3",node1,node1);
fail();
}
//Test using AddEdge(String, NodeIndex, NodeIndex)
@Test
public void test18(){
SingleGraph sg = new SingleGraph("MyGraph", true, false);
Node node1 = sg.addNode("N1");//source and target
Node node2 = sg.addNode("N2");
Node node3 = sg.addNode("N3");
sg.addEdge("E1",node1.getIndex(),node2.getIndex());
sg.addEdge("E2",node1.getIndex(),node3.getIndex());
Edge e = sg.addEdge("E3",node1.getIndex(),node1.getIndex());
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
//Test using AddEdge(String, NodeIndex, NodeIndex, directed)
@Test
public void test19(){
SingleGraph sg = new SingleGraph("MyGraph", false, false);
Node node1 = sg.addNode("N1");//source
Node node2 = sg.addNode("N2");//target
Node node3 = sg.addNode("N3");
sg.addEdge("E1",node1.getIndex(),node2.getIndex(),true);
sg.addEdge("E2",node1.getIndex(),node3.getIndex(),true);
Edge e = sg.addEdge("E4",node1.getIndex(),node2.getIndex(),true);
assertTrue(e==null);
}
@Test
public void test20(){
}
@Test
public void test21(){
}
@Test
public void test22(){
}
@Test
public void test23(){
}
//Test using AddEdge(String, fromIndex, toIndex, directed)
@Test
public void test24(){
SingleGraph sg = new SingleGraph("MyGraph", true, false);
Node node1 = sg.addNode("N1");//source and target
Node node2 = sg.addNode("N2");
Node node3 = sg.addNode("N3");
sg.addEdge("E1",node1.getIndex(),node2.getIndex(), true);
sg.addEdge("E2",node1.getIndex(),node3.getIndex(), true);
Edge e = sg.addEdge("E3",node1.getIndex(),node1.getIndex(), true);
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
//Test using AddEdge(String, Node from, Node to, directed)
@Test
public void test25(){
SingleGraph sg = new SingleGraph("MyGraph", true, false);
Node node1 = sg.addNode("N1");//source and target
Node node2 = sg.addNode("N2");
Node node3 = sg.addNode("N3");
sg.addEdge("E1",node1,node2, true);
sg.addEdge("E2",node1,node3, true);
Edge e = sg.addEdge("E3",node1.getIndex(),node1.getIndex(), true);
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
@Test
public void test27(){
SingleGraph sg = new SingleGraph("MyGraph", true, false);
Node node1 = sg.addNode("N1");//source and target
Node node2 = sg.addNode("N2");
Node node3 = sg.addNode("N3");
sg.addEdge("E1",node1,node2, true);
sg.addEdge("E2",node1,node3, true);
Edge e = sg.addEdge("E3",node1.getIndex(),node1.getIndex(), true);
assertTrue(e.getSourceNode().getId()=="N1" && e.getTargetNode().getId()=="N1");
}
@Test
public void test28(){
SingleGraph sg = new SingleGraph("MyGraph", true, false);
Node node1 = sg.addNode("N1");//source and target
Node node2 = sg.addNode("N2");
Node node3 = sg.addNode("N3");
sg.addEdge("E1",node1,node2);
sg.addEdge("E2",node1,node3);
exception.expect(EdgeRejectedException.class);
Edge e = sg.addEdge("E3",node1,node2);
fail();
}
@Test
public void test31(){
SingleGraph sg = new SingleGraph("MyGraph", true, false);
Node node1 = sg.addNode("N1");//source and target
Node node2 = sg.addNode("N2");
Node node3 = sg.addNode("N3");
sg.addEdge("E1",node1,node2);
sg.addEdge("E2",node1,node3);
exception.expect(EdgeRejectedException.class);
Edge e = sg.addEdge("E3",node2,node1);
fail();
}
@Test
public void test26(){
SingleGraph sg = createGraph(1025, true);
}
public SingleGraph createGraph(int n, Boolean strictChecking){
SingleGraph graph = new SingleGraph("graph", strictChecking, true);
Node old = graph.addNode("node0");
for(int i =1; i<=n; i++){
Node newNode = graph.addNode("node"+i);
graph.addEdge("e"+i, old, newNode);
old = newNode;
}
return graph;
}
// private void test3() {
//
// SingleGraph s = new SingleGraph("sings");
// MultiNode m1 = new MultiNode(s, "m1");
// MultiNode m2 = new MultiNode(s, "m2");
// s.addEdge("asda", m1, m2);
// s.addEdge("asda1", m1, m2);
// System.out.println(s.getEdge("asda"));
// s.addNode("s");
//
// }
//
//
//
// //true,correct,many,true,many,true,true,true,N,false,true
// private void test4() {
// SingleGraph singleGraph = new SingleGraph("singleGraph1", true, true);
//
// for (int i = 0; i < 100; i++) {
// singleGraph.addNode("Node_" + i);
// }
//
// // creaning n-1 edges
// for (int i = 2; i < 90; i++) {
// singleGraph.addEdge("Edge_"+i, "Node_"+i, "Node_"+(i+1));
// }
//
// //sourceDegree N
// for (int i = 0; i < 100; i++) {
// singleGraph.addEdge("EdgeDegree_"+i, "Node_1", "Node_"+i);
// }
// exception.expect(IdAlreadyInUseException.class);
// singleGraph.addEdge("EdgeDegree_1", "Node_1", "Node_1");
// }
//
// //false,correct,many,false,many,false,true,false,N-1,false,false
// private void test2() {
// SingleGraph singleGraph = new SingleGraph("singleGraph2", false, false);
// String id = "myID";
//
// for (int i = 0; i < 100; i++) {
// singleGraph.addNode("Node_" + i);
// }
//
// for (int i = 2; i < 90; i++) {
// singleGraph.addEdge("Edge_"+i, "Node_"+i, "Node_"+(i+1));
// }
//
// //sourceDegree N-1
// for (int i = 0; i < 99; i++) {
// singleGraph.addEdge("EdgeDegree_"+i, "Node_1", "Node_"+(i+1));
// }
//
//
// Edge ed = singleGraph.addEdge(id, "Node_1", "NodeTarget");
//
// assertEquals(100, singleGraph.getNodeCount());
//
//// assertEquals("Node_1", singleGraph.getEdge(id).getSourceNode().getId());
// //assertEquals("NodeTarget", singleGraph.getEdge(id).getTargetNode());
// }
//
//
// // /*
// // * create an edge with given id to control the id value existence
// // * if strict checking is true it will raise IdAlreadynUseException
// // * otherwise it will remove the existence edge and add new edge
// // * changing the target and source node
// // */
// // private void test1(SingleGraph singleGraph, String id, int nrNodes) {
// // if (id == null) {
// // exception.expect(AssertionError.class);
// // } else {
// // exception.expect(IdAlreadyInUseException.class);
// // }
// //
// // singleGraph.addEdge(id, "Node_1", "Node_"+(nrNodes-1));
// // singleGraph.addEdge(id, "Node_2", "Node_"+(nrNodes-2));
// //
// //
// // }
//
}