package edu.hawaii.jmotif.sax;
import edu.hawaii.jmotif.sax.trie.VisitRegistry;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
/**
* Test the visit registry.
*
* @author psenin
*
*/
public class TestVisitRegistry {
private VisitRegistry vr;
/**
* Set up.
*
* @throws Exception if error occurs.
*/
@Before
public void setUp() throws Exception {
vr = new VisitRegistry(13);
}
/**
* Test the constructor.
*/
@Test
public void testVisitRegistry() {
assertEquals("Test visit registry", 13, vr.getUnvisited().size());
assertTrue("Test visit registry", vr.getVisited().isEmpty());
}
/**
* Test the marking.
*/
@Test
public void testMarkVisited() {
vr.markVisited(3);
vr.markVisited(7);
assertEquals("Test visit registry", 11, vr.getUnvisited().size());
assertFalse("Test visit registry", vr.getUnvisited().contains(3));
assertFalse("Test visit registry", vr.getUnvisited().contains(7));
assertEquals("Test visit registry", 2, vr.getVisited().size());
assertTrue("Test visit registry", vr.getVisited().contains(3));
assertTrue("Test visit registry", vr.getVisited().contains(7));
}
/**
* Test the position generator.
*/
@Test
public void testGetNextRandomUnvisitedPosition() {
int k = vr.getNextRandomUnvisitedPosition();
assertTrue("Test visit registry", vr.getUnvisited().contains(k));
assertFalse("Test visit registry", vr.getVisited().contains(k));
vr.markVisited(k);
assertFalse("Test visit registry", vr.getUnvisited().contains(k));
int i = 0;
while (!vr.getUnvisited().isEmpty()) {
k = vr.getNextRandomUnvisitedPosition();
assertFalse("Test visit registry", vr.getVisited().contains(k));
vr.markVisited(k);
assertFalse("Test visit registry", vr.getUnvisited().contains(k));
i++;
}
assertEquals("Test visit registry", 12, i);
}
}