package i5.las2peer.services.ocd.testsUtils;
import i5.las2peer.services.ocd.adapters.AdapterException;
import i5.las2peer.services.ocd.adapters.graphInput.GmlGraphInputAdapter;
import i5.las2peer.services.ocd.adapters.graphInput.GraphInputAdapter;
import i5.las2peer.services.ocd.adapters.graphInput.NodeContentEdgeListGraphInputAdapter;
import i5.las2peer.services.ocd.adapters.graphInput.NodeWeightedEdgeListGraphInputAdapter;
import i5.las2peer.services.ocd.adapters.graphInput.UnweightedEdgeListGraphInputAdapter;
import i5.las2peer.services.ocd.adapters.graphInput.WeightedEdgeListGraphInputAdapter;
import i5.las2peer.services.ocd.graphs.CustomGraph;
import i5.las2peer.services.ocd.graphs.GraphCreationLog;
import i5.las2peer.services.ocd.graphs.GraphCreationType;
import i5.las2peer.services.ocd.graphs.GraphProcessor;
import i5.las2peer.services.ocd.graphs.GraphType;
import i5.las2peer.services.ocd.utils.ExecutionStatus;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.text.ParseException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import y.base.Edge;
import y.base.EdgeCursor;
import y.base.Node;
import y.base.NodeCursor;
/**
* Provides graphs for testing purposes.
* @author Sebastian
*
*/
public class OcdTestGraphFactory {
public static CustomGraph getTwoCommunitiesGraph() {
// Creates new graph
CustomGraph graph = new CustomGraph();
graph.setName(OcdTestConstants.twoCommunitiesName);
// Creates nodes
Node n[] = new Node[11];
for (int i = 0; i < 11; i++) {
n[i] = graph.createNode();
}
// Creates edges
graph.createEdge(n[0], n[1]);
graph.createEdge(n[0], n[2]);
graph.createEdge(n[0], n[3]);
graph.createEdge(n[0], n[4]);
graph.createEdge(n[0], n[10]);
graph.createEdge(n[5], n[6]);
graph.createEdge(n[5], n[7]);
graph.createEdge(n[5], n[8]);
graph.createEdge(n[5], n[9]);
graph.createEdge(n[5], n[10]);
graph.createEdge(n[1], n[0]);
graph.createEdge(n[2], n[0]);
graph.createEdge(n[3], n[0]);
graph.createEdge(n[4], n[0]);
graph.createEdge(n[10], n[0]);
graph.createEdge(n[6], n[5]);
graph.createEdge(n[7], n[5]);
graph.createEdge(n[8], n[5]);
graph.createEdge(n[9], n[5]);
graph.createEdge(n[10], n[5]);
EdgeCursor edges = graph.edges();
while(edges.ok()) {
Edge edge = edges.edge();
graph.setEdgeWeight(edge, 1);
edges.next();
}
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getAperiodicTwoCommunitiesGraph() {
// Creates new graph
CustomGraph graph = new CustomGraph();
graph.setName(OcdTestConstants.aperiodicTwoCommunitiesName);
// Creates nodes
Node n[] = new Node[11];
for (int i = 0; i < 11; i++) {
n[i] = graph.createNode();
graph.setNodeName(n[i], Integer.toString(i));
}
// Creates edges
graph.createEdge(n[0], n[1]);
graph.createEdge(n[0], n[2]);
graph.createEdge(n[0], n[3]);
graph.createEdge(n[0], n[4]);
graph.createEdge(n[0], n[10]);
graph.createEdge(n[5], n[6]);
graph.createEdge(n[5], n[7]);
graph.createEdge(n[5], n[8]);
graph.createEdge(n[5], n[9]);
graph.createEdge(n[5], n[10]);
graph.createEdge(n[1], n[2]);
graph.createEdge(n[2], n[3]);
graph.createEdge(n[3], n[4]);
graph.createEdge(n[1], n[10]);
graph.createEdge(n[4], n[10]);
EdgeCursor edges = graph.edges();
while(edges.ok()) {
Edge edge = edges.edge();
graph.setEdgeWeight(edge, 1);
edges.next();
}
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.DIRECTED);
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getDirectedAperiodicTwoCommunitiesGraph() {
// Creates new graph
CustomGraph graph = new CustomGraph();
graph.setName(OcdTestConstants.directedAperiodicTwoCommunitiesName);
// Creates nodes
Node n[] = new Node[11];
for (int i = 0; i < 11; i++) {
n[i] = graph.createNode();
graph.setNodeName(n[i], Integer.toString(i));
}
// Creates edges
graph.createEdge(n[1], n[0]);
graph.createEdge(n[2], n[0]);
graph.createEdge(n[3], n[0]);
graph.createEdge(n[4], n[0]);
graph.createEdge(n[10], n[0]);
graph.createEdge(n[5], n[6]);
graph.createEdge(n[5], n[7]);
graph.createEdge(n[5], n[8]);
graph.createEdge(n[5], n[9]);
graph.createEdge(n[5], n[10]);
graph.createEdge(n[1], n[2]);
graph.createEdge(n[2], n[3]);
graph.createEdge(n[3], n[4]);
graph.createEdge(n[1], n[10]);
graph.createEdge(n[4], n[10]);
EdgeCursor edges = graph.edges();
while(edges.ok()) {
Edge edge = edges.edge();
graph.setEdgeWeight(edge, 1);
edges.next();
}
graph.addType(GraphType.DIRECTED);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getSimpleTwoComponentsGraph() {
// Creates new graph
CustomGraph graph = new CustomGraph();
graph.setName(OcdTestConstants.simpleTwoComponentsName);
// Creates nodes
Node n[] = new Node[11];
for (int i = 0; i < 11; i++) {
n[i] = graph.createNode();
}
// Creates edges
graph.createEdge(n[1], n[0]);
graph.createEdge(n[2], n[0]);
graph.createEdge(n[3], n[0]);
graph.createEdge(n[4], n[0]);
graph.createEdge(n[10], n[0]);
graph.createEdge(n[5], n[6]);
graph.createEdge(n[5], n[7]);
graph.createEdge(n[5], n[8]);
graph.createEdge(n[5], n[9]);
graph.createEdge(n[1], n[2]);
graph.createEdge(n[2], n[3]);
graph.createEdge(n[3], n[4]);
graph.createEdge(n[1], n[10]);
graph.createEdge(n[4], n[10]);
EdgeCursor edges = graph.edges();
while(edges.ok()) {
Edge edge = edges.edge();
graph.setEdgeWeight(edge, 1);
edges.next();
}
graph.addType(GraphType.DIRECTED);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
/*
* A small test graph given in the original paper that introduces
* the link communities algorithm.
* Is undirected and unweighted.
*/
public static CustomGraph getLinkCommunitiesTestGraph() {
// Creates new graph
CustomGraph graph = new CustomGraph();
graph.setName(OcdTestConstants.linkCommunitiesTestName);
// Creates nodes
for (int i = 0; i < 9; i++) {
graph.createNode();
}
// Creates edges
Node n[] = graph.getNodeArray();
graph.createEdge(n[0], n[1]);
graph.createEdge(n[0], n[2]);
graph.createEdge(n[0], n[3]);
graph.createEdge(n[1], n[2]);
graph.createEdge(n[1], n[3]);
graph.createEdge(n[2], n[3]);
graph.createEdge(n[3], n[4]);
graph.createEdge(n[3], n[5]);
graph.createEdge(n[3], n[6]);
graph.createEdge(n[4], n[5]);
graph.createEdge(n[6], n[7]);
graph.createEdge(n[6], n[8]);
graph.createEdge(n[7], n[8]);
EdgeCursor edges = graph.edges();
while(edges.ok()) {
Edge edge = edges.edge();
graph.setEdgeWeight(edge, 1);
edges.next();
}
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.DIRECTED);
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getSawmillGraph() throws AdapterException, FileNotFoundException {
GraphInputAdapter adapter = new NodeWeightedEdgeListGraphInputAdapter(new FileReader(OcdTestConstants.sawmillNodeWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.sawmillName);
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.DIRECTED);
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.REAL_WORLD, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getDirectedSawmillGraph() throws AdapterException, FileNotFoundException {
GraphInputAdapter adapter = new NodeWeightedEdgeListGraphInputAdapter(new FileReader(OcdTestConstants.sawmillNodeWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.directedSawmillName);
graph.addType(GraphType.DIRECTED);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.REAL_WORLD, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getSiamDmGraph() throws AdapterException, FileNotFoundException {
GraphInputAdapter adapter = new UnweightedEdgeListGraphInputAdapter(new FileReader(OcdTestConstants.siamDmUnweightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.siamDmName);
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.DIRECTED);
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.REAL_WORLD, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getFacebookGraph() throws AdapterException, FileNotFoundException {
GraphInputAdapter adapter = new UnweightedEdgeListGraphInputAdapter(new FileReader(OcdTestConstants.facebookUnweightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.facebookName);
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.DIRECTED);
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.REAL_WORLD, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getNewmanClizzGraph() throws AdapterException, FileNotFoundException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter(new FileReader(OcdTestConstants.newmanClizzGraphWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.newmanClizzName);
GraphProcessor processor = new GraphProcessor();
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.NEWMAN, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getNewmanLinkGraph() throws AdapterException, FileNotFoundException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter(new FileReader(OcdTestConstants.newmanLinkGraphWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.newmanLinkName);
GraphProcessor processor = new GraphProcessor();
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.NEWMAN, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getMiniServiceTestGraph() {
// Creates new graph
CustomGraph graph = new CustomGraph();
graph.setName(OcdTestConstants.miniServiceTestGraphName);
// Creates nodes
Node n[] = new Node[5];
for (int i = 0; i < 5; i++) {
n[i] = graph.createNode();
graph.setNodeName(n[i], Integer.toString(i));
}
// Creates edges
graph.createEdge(n[0], n[1]);
graph.createEdge(n[0], n[2]);
graph.createEdge(n[0], n[3]);
graph.createEdge(n[0], n[4]);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getDolphinsGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new GmlGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.dolphinsGmlInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.dolphinsName);
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.DIRECTED);
graph.addType(GraphType.SELF_LOOPS);
graph.addType(GraphType.WEIGHTED);
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.REAL_WORLD, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getDocaTestGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new UnweightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.docaTestUnweightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.docaTestGraphName);
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.DIRECTED);
graph.addType(GraphType.SELF_LOOPS);
graph.addType(GraphType.WEIGHTED);
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
/*public static CustomGraph getContentTestGraph() {
// Creates new graph
CustomGraph graph = new CustomGraph();
graph.setName(OcdTestConstants.contentTestName);
// Creates nodes
Node n[] = new Node[5];
for (int i = 0; i < 5; i++) {
n[i] = graph.createNode();
graph.setNodeName(n[i], Integer.toString(i));
}
graph.setNodeContent(n[0],"John likes movies theatre test case" );
graph.setNodeContent(n[1], "Marie likes books theatre case");
graph.setNodeContent(n[2], "John likes movies theatre test case");
graph.setNodeContent(n[3], "Marie likes movies theatre case");
graph.setNodeContent(n[4], "node unconnected");
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.CONTENT_UNLINKED);
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}*/
public static CustomGraph getJmolTestGraph() throws AdapterException, FileNotFoundException, IllegalArgumentException, ParseException {
NodeContentEdgeListGraphInputAdapter adapter = new NodeContentEdgeListGraphInputAdapter(new FileReader(OcdTestConstants.jmolEdgeListInputPath));
Map<String, String> adapterParam = new HashMap<String, String>();
adapterParam.put("startDate", "2002-04-14");
adapterParam.put("endDate", "2003-11-21");
adapterParam.put("path", "C:\\indexes\\jmol2004");
adapter.setParameter(adapterParam);
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.jmolName);
graph.addType(GraphType.CONTENT_LINKED);
GraphProcessor processor = new GraphProcessor();
processor.makeCompatible(graph, new HashSet<GraphType>());
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
public static CustomGraph getLfrGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.lfrUnweightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.lfrGraphName);
graph.addType(GraphType.DIRECTED);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getSignedLfrGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.signedLfrWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.signedLfrGraphName);
graph.addType(GraphType.DIRECTED);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getSignedLfrSixNodesGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.signedLfrSixNodesWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.signedLfrSixNodesGraphName);
graph.addType(GraphType.DIRECTED);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getSignedLfrBlurredGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.signedLfrBlurredWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.signedLfrGraphName);
graph.addType(GraphType.DIRECTED);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getSignedLfrMadeUndirectedGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.signedLfrWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.signedLfrGraphName);
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.DIRECTED);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
processor.makeUndirected(graph);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getSloveneParliamentaryPartyGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.sloveneParliamentaryPartyWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.sloveneParliamentaryPartyGraphName);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getSloveneParliamentaryPartyDirectedGraph()
throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.sloveneParliamentaryPartyWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.sloveneParliamentaryPartyGraphName);
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.NEGATIVE_WEIGHTS);
processor.makeDirected(graph);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getWikiElecGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.wikiElecWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.wikiElecGraphName);
graph.addType(GraphType.DIRECTED);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getWikiElecUndirectedGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.wikiElecWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.wikiElecGraphName);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphProcessor processor = new GraphProcessor();
processor.makeUndirected(graph);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getEpinionsGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.epinionsWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.epinionsGraphName);
graph.addType(GraphType.DIRECTED);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getEpinionsUndirectedGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.epinionsWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.epinionsGraphName);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphProcessor processor = new GraphProcessor();
processor.makeUndirected(graph);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getslashDotGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.slashDotWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.slashDotGraphName);
graph.addType(GraphType.DIRECTED);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getSlashDotUndirectedGraph() throws FileNotFoundException, AdapterException {
GraphInputAdapter adapter = new WeightedEdgeListGraphInputAdapter();
adapter.setReader(new FileReader(OcdTestConstants.slashDotWeightedEdgeListInputPath));
CustomGraph graph = adapter.readGraph();
graph.setName(OcdTestConstants.slashDotGraphName);
graph.addType(GraphType.NEGATIVE_WEIGHTS);
GraphProcessor processor = new GraphProcessor();
processor.makeUndirected(graph);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
// @author: YLi
public static CustomGraph getFiveNodesGraph() {
// Creates new graph
CustomGraph graph = new CustomGraph();
graph.setName(OcdTestConstants.fiveNodesGraphName);
// Creates nodes
Node n[] = new Node[5];
for (int i = 0; i < 5; i++) {
n[i] = graph.createNode();
}
// Creates edges
graph.createEdge(n[0], n[1]);
graph.createEdge(n[0], n[2]);
graph.createEdge(n[2], n[3]);
graph.createEdge(n[3], n[1]);
graph.createEdge(n[3], n[4]);
graph.createEdge(n[4], n[2]);
graph.createEdge(n[2], n[0]);
// Set edge weight
graph.setEdgeWeight(graph.getEdgeArray()[0], 1);
graph.setEdgeWeight(graph.getEdgeArray()[1], -1);
graph.setEdgeWeight(graph.getEdgeArray()[2], 1);
graph.setEdgeWeight(graph.getEdgeArray()[3], -1);
graph.setEdgeWeight(graph.getEdgeArray()[4], 1);
graph.setEdgeWeight(graph.getEdgeArray()[5], 1);
graph.setEdgeWeight(graph.getEdgeArray()[6], 1);
GraphCreationLog log = new GraphCreationLog(GraphCreationType.UNDEFINED, new HashMap<String, String>());
log.setStatus(ExecutionStatus.COMPLETED);
graph.setCreationMethod(log);
return graph;
}
}