package boofcv.alg.tracker.tld;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* @author Peter Abeles
*/
public class TestTldFernManager {
@Test
public void constructor() {
TldFernManager alg = new TldFernManager(10);
assertEquals(1024,alg.table.length);
}
@Test
public void lookupFern() {
TldFernManager alg = new TldFernManager(10);
TldFernFeature a = alg.lookupFern(345);
assertTrue(a != null);
assertTrue(a == alg.lookupFern(345));
assertEquals(345,a.value);
}
@Test
public void lookupPosterior() {
TldFernManager alg = new TldFernManager(10);
assertEquals(0,alg.lookupPosterior(234),1e-8);
TldFernFeature a = alg.lookupFern(234);
a.numN = 100;
a.numP = 234;
a.incrementP();
double expected = a.getPosterior();
assertEquals(expected,alg.lookupPosterior(234),1e-8);
}
@Test
public void reset() {
TldFernManager alg = new TldFernManager(10);
alg.table[10] = new TldFernFeature();
alg.table[800] = new TldFernFeature();
alg.reset();
for( int i = 0; i < alg.table.length; i++ ) {
assertTrue(alg.table[i] == null);
}
assertEquals(2,alg.unusedFern.size());
}
@Test
public void createFern() {
TldFernManager alg = new TldFernManager(3);
assertTrue(alg.createFern() != null);
alg.unusedFern.push(new TldFernFeature());
assertTrue(alg.createFern() != null);
assertEquals(0,alg.unusedFern.size());
}
}