package i5.las2peer.services.ocd.benchmarks;
import static org.junit.Assert.assertEquals;
import i5.las2peer.services.ocd.graphs.Cover;
import i5.las2peer.services.ocd.graphs.CustomGraph;
import org.junit.Test;
import y.base.Node;
import y.base.NodeCursor;
public class LfrBenchmarkTest {
@Test
public void test() throws OcdBenchmarkException, InterruptedException {
LfrBenchmark model = new LfrBenchmark(12, 0.1, 0.5);
Cover cover = model.createGroundTruthCover();
CustomGraph graph = cover.getGraph();
assertEquals(1000, graph.nodeCount());
System.out.println(cover.toString());
}
@Test
public void testLowerBound() throws OcdBenchmarkException, InterruptedException {
LfrBenchmark model = new LfrBenchmark(24, 0.3, 0);
Cover cover = model.createGroundTruthCover();
CustomGraph graph = cover.getGraph();
assertEquals(1000, graph.nodeCount());
System.out.println(cover.toString());
}
@Test
public void testUpperBound() throws OcdBenchmarkException, InterruptedException {
LfrBenchmark model = new LfrBenchmark(24, 0.3, 1);
Cover cover = model.createGroundTruthCover();
CustomGraph graph = cover.getGraph();
assertEquals(1000, graph.nodeCount());
System.out.println(cover.toString());
}
@Test
public void testMembershipCounts() throws OcdBenchmarkException, InterruptedException {
LfrBenchmark model = new LfrBenchmark(24, 0.3, 0.5);
Cover cover = model.createGroundTruthCover();
CustomGraph graph = cover.getGraph();
assertEquals(1000, graph.nodeCount());
NodeCursor nodes = graph.nodes();
Node node = nodes.node();
int oneMembershipCount = 0;
int twoMembershipsCount = 0;
while(nodes.ok()) {
node = nodes.node();
int memberships = cover.getCommunityIndices(node).size();
if(memberships == 1) {
oneMembershipCount++;
}
else if(memberships == 2) {
twoMembershipsCount ++;
}
nodes.next();
}
System.out.println("One memberships: " + oneMembershipCount);
System.out.println("Two memberships: " + twoMembershipsCount);
assertEquals(500, oneMembershipCount);
assertEquals(500, twoMembershipsCount);
}
}