package nl.tudelft.lifetiles.graph.model;
import static org.junit.Assert.assertEquals;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Level;
import nl.tudelft.lifetiles.core.util.Logging;
import nl.tudelft.lifetiles.sequence.model.DefaultSequence;
import nl.tudelft.lifetiles.sequence.model.SegmentEmpty;
import nl.tudelft.lifetiles.sequence.model.Sequence;
import nl.tudelft.lifetiles.sequence.model.SequenceSegment;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class BucketCacheTest {
GraphFactory<SequenceSegment> gf;
SequenceSegment v1, v2;
Graph<SequenceSegment> gr;
@BeforeClass
public static void before() {
Logging.setLevel(Level.SEVERE);
}
@Before
public void setUp() {
gf = FactoryProducer.getFactory("JGraphT");
gr = gf.getGraph();
Set<Sequence> s = new HashSet<Sequence>();
s.add(new DefaultSequence("reference"));
v1 = new SequenceSegment(s, 1, 11, new SegmentEmpty(10));
v1.setUnifiedStart(1);
v1.setUnifiedEnd(11);
v2 = new SequenceSegment(s, 31, 41, new SegmentEmpty(10));
v2.setUnifiedStart(31);
v2.setUnifiedEnd(41);
}
@Test
public void testFullBucketCache() {
gr.addVertex(v1);
gr.addVertex(v2);
gr.addEdge(v1, v2);
BucketCache bc = new BucketCache(1, gr);
assertEquals(1, bc.getNumberBuckets());
assertEquals(2, bc.getBuckets().get(0).size());
}
@Test
public void testDivisionBucketCache() {
gr.addVertex(v1);
gr.addVertex(v2);
gr.addEdge(v1, v2);
BucketCache bc = new BucketCache(2, gr);
assertEquals(2, bc.getNumberBuckets());
assertEquals(1, bc.getBuckets().get(0).size());
assertEquals(1, bc.getBuckets().get(1).size());
}
@Test
public void testEmptyBucketCache() {
BucketCache bc = new BucketCache(1, gr);
assertEquals(0, bc.getBuckets().get(0).size());
}
@Test
public void testEmptyNumberBuckets() {
BucketCache bc = new BucketCache(1, gr);
assertEquals(1, bc.getNumberBuckets());
}
}