package i5.las2peer.services.ocd.algorithms;
import i5.las2peer.services.ocd.adapters.AdapterException;
import i5.las2peer.services.ocd.algorithms.MergingOfOverlappingCommunitiesAlgorithm;
import i5.las2peer.services.ocd.algorithms.OcdAlgorithm;
import i5.las2peer.services.ocd.algorithms.OcdAlgorithmExecutor;
import i5.las2peer.services.ocd.algorithms.utils.OcdAlgorithmException;
import i5.las2peer.services.ocd.graphs.Cover;
import i5.las2peer.services.ocd.graphs.CustomGraph;
import i5.las2peer.services.ocd.graphs.GraphProcessor;
import i5.las2peer.services.ocd.graphs.GraphType;
import i5.las2peer.services.ocd.testsUtils.OcdTestGraphFactory;
import java.io.FileNotFoundException;
import java.util.HashSet;
import org.junit.Ignore;
import org.junit.Test;
import y.base.Node;
public class MergingOfOverlappingCommunitiesTest {
@Test
public void testOnAperiodicTwoCommunities() throws OcdAlgorithmException, InterruptedException {
CustomGraph graph = OcdTestGraphFactory
.getAperiodicTwoCommunitiesGraph();
OcdAlgorithm algo = new MergingOfOverlappingCommunitiesAlgorithm();
Cover cover = algo.detectOverlappingCommunities(graph);
System.out.println(cover.toString());
}
@Test
public void testOnSawmill() throws OcdAlgorithmException, AdapterException, FileNotFoundException, InterruptedException {
CustomGraph graph = OcdTestGraphFactory.getSawmillGraph();
OcdAlgorithm algo = new MergingOfOverlappingCommunitiesAlgorithm();
Cover cover = algo.detectOverlappingCommunities(graph);
System.out.println(cover.toString());
}
@Test
public void testOnKnowResultGraph() throws OcdAlgorithmException, InterruptedException {
CustomGraph graph = new CustomGraph();
Node node0 = graph.createNode();
Node node1 = graph.createNode();
Node node2 = graph.createNode();
Node node3 = graph.createNode();
Node node4 = graph.createNode();
Node node5 = graph.createNode();
graph.createEdge(node0, node1);
graph.createEdge(node0, node2);
graph.createEdge(node0, node3);
graph.createEdge(node1, node2);
graph.createEdge(node3, node4);
graph.createEdge(node3, node5);
GraphProcessor processor = new GraphProcessor();
graph.addType(GraphType.DIRECTED);
processor.makeCompatible(graph, new HashSet<GraphType>());
OcdAlgorithm algo = new MergingOfOverlappingCommunitiesAlgorithm();
Cover cover = algo.detectOverlappingCommunities(graph);
System.out.println(cover.toString());
}
@Ignore
@Test
public void testOnSiam() throws OcdAlgorithmException, AdapterException, FileNotFoundException, InterruptedException {
CustomGraph graph = OcdTestGraphFactory.getSiamDmGraph();
OcdAlgorithm algo = new MergingOfOverlappingCommunitiesAlgorithm();
OcdAlgorithmExecutor executor = new OcdAlgorithmExecutor();
Cover cover = executor.execute(graph, algo, 0);
System.out.println(cover.toString());
}
}