package uk.ac.rhul.cs.cl1.seeding;
import static org.junit.Assert.*;
import java.util.Iterator;
import org.junit.BeforeClass;
import org.junit.Test;
import uk.ac.rhul.cs.cl1.MutableNodeSet;
import uk.ac.rhul.cs.cl1.seeding.SeedGenerator;
import uk.ac.rhul.cs.graph.Edge;
import uk.ac.rhul.cs.graph.Graph;
public class SeedGeneratorTest {
static Graph graph = null;
@BeforeClass
public static void setUpBefore() {
int[] edges = { 0, 1, 1, 3, 3, 4, 4, 6, 6, 5, 5, 3, 3, 2, 2, 0, 0, 3 };
graph = new Graph();
graph.createNodes(7);
for (int i = 0; i < edges.length; i+=2) {
graph.createEdge(edges[i], edges[i+1], 1);
}
}
@Test
public void testEveryNodeSeedGenerator() {
SeedGenerator gen = null;
try {
gen = SeedGenerator.fromString("nodes", graph);
} catch (InstantiationException ex) {
fail(ex.getMessage());
}
int i = 0;
for (Seed seed: gen) {
MutableNodeSet set = seed.createMutableNodeSet();
assert(set.contains(i));
assert(set.size() == 1);
i++;
}
}
@Test
public void testEveryEdgeSeedGenerator() {
SeedGenerator gen = null;
try {
gen = SeedGenerator.fromString("edges", graph);
} catch (InstantiationException ex) {
fail(ex.getMessage());
}
Iterator<Seed> it = gen.iterator();
for (Edge edge: graph) {
assert(it.hasNext());
Seed seed = it.next();
MutableNodeSet set = seed.createMutableNodeSet();
assert(set.contains(edge.source));
assert(set.contains(edge.target));
assert(set.size() == 2);
}
}
}