package i5.las2peer.services.ocd.algorithms; import static org.junit.Assert.*; import java.io.FileNotFoundException; import java.io.IOException; import org.junit.Test; import org.la4j.matrix.Matrix; import org.la4j.matrix.dense.Basic2DMatrix; import i5.las2peer.services.ocd.adapters.AdapterException; 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.testsUtils.OcdTestConstants; import i5.las2peer.services.ocd.testsUtils.OcdTestGraphFactory; import y.base.Edge; import y.base.EdgeCursor; public class EvolutionaryAlgorithmBasedOnSimilarityTest { /* * Test whether a graph can be translated into the paj format. */ @Test public void testWriteNetworkFile() throws AdapterException, IOException, InterruptedException, OcdAlgorithmException { CustomGraph graph = OcdTestGraphFactory.getFiveNodesGraph(); GraphProcessor processor = new GraphProcessor(); processor.makeUndirected(graph); EvolutionaryAlgorithmBasedOnSimilarity algo = new EvolutionaryAlgorithmBasedOnSimilarity(); EdgeCursor edges = graph.edges(); Edge edge; System.out.println("Graph:"); while (edges.ok()) { if (Thread.interrupted()) { throw new InterruptedException(); } edge = edges.edge(); System.out.println(edge + " " + graph.getEdgeWeight(edge)); edges.next(); } algo.writeNetworkFile(graph); } @Test public void testTranslateCommunityFile() throws IOException, InterruptedException { EvolutionaryAlgorithmBasedOnSimilarity algo = new EvolutionaryAlgorithmBasedOnSimilarity(); String LastResultPath = OcdTestConstants.meaResultFilePath; /* * translating the result of MEA running on the signedLfrNetwork with 12 * nodes. */ Matrix membership = algo.translateCommunityFile(LastResultPath, 12); Matrix expectedMembership = new Basic2DMatrix(12, 3); System.out.println("Test result:"); System.out.println(membership); expectedMembership.set(0, 0, 0.5); expectedMembership.set(0, 1, 0.5); expectedMembership.set(0, 2, 0); expectedMembership.set(1, 0, 0.5); expectedMembership.set(1, 1, 0.5); expectedMembership.set(1, 2, 0); expectedMembership.set(2, 0, 0); expectedMembership.set(2, 1, 1); expectedMembership.set(2, 2, 0); expectedMembership.set(3, 0, 0); expectedMembership.set(3, 1, 1); expectedMembership.set(3, 2, 0); expectedMembership.set(4, 0, 1); expectedMembership.set(4, 1, 0); expectedMembership.set(4, 2, 0); expectedMembership.set(5, 0, 1); expectedMembership.set(5, 1, 0); expectedMembership.set(5, 2, 0); expectedMembership.set(6, 0, 1); expectedMembership.set(6, 1, 0); expectedMembership.set(6, 2, 0); expectedMembership.set(7, 0, 0.5); expectedMembership.set(7, 1, 0); expectedMembership.set(7, 2, 0.5); expectedMembership.set(8, 0, 1); expectedMembership.set(8, 1, 0); expectedMembership.set(8, 2, 0); expectedMembership.set(9, 0, 0); expectedMembership.set(9, 1, 0); expectedMembership.set(9, 2, 1); expectedMembership.set(10, 0, 0); expectedMembership.set(10, 1, 1); expectedMembership.set(10, 2, 0); expectedMembership.set(11, 0, 1); expectedMembership.set(11, 1, 0); expectedMembership.set(11, 2, 0); assertEquals(expectedMembership, membership); } @Test public void testDetectOverlappingCommunities() throws FileNotFoundException, AdapterException, OcdAlgorithmException, InterruptedException { CustomGraph graph = OcdTestGraphFactory.getSignedLfrMadeUndirectedGraph(); EvolutionaryAlgorithmBasedOnSimilarity algo = new EvolutionaryAlgorithmBasedOnSimilarity(); Cover cover = algo.detectOverlappingCommunities(graph); System.out.println(cover.toString()); } }