Add more tests for ActionFrequency.

This commit is contained in:
asofold 2013-01-13 22:11:51 +01:00
parent f0e9a844fc
commit 76000584d0

View File

@ -20,5 +20,50 @@ public class TestActionFrequency {
// TODO: more tests...
}
@Test
public void testAddFromZero(){
ActionFrequency freq = new ActionFrequency(3, 333);
for (int i = 0; i < 999; i++){
freq.add(i, 1f);
// TODO: maybe test sums here already.
}
if (freq.score(1f) != 999) fail("Sum should be 999, got instead: " + freq.score(1f));
freq.update(999);
if (freq.score(1f) != 666f) fail("Sum should be 666, got instead: " + freq.score(1f));
freq.update(1332);
if (freq.score(1f) != 333f) fail("Sum should be 333, got instead: " + freq.score(1f));
freq.update(1665);
if (freq.score(1f) != 0f) fail("Sum should be 0, got instead: " + freq.score(1f));
}
@Test
public void testAddFromTime(){
long time = System.currentTimeMillis();
ActionFrequency freq = new ActionFrequency(3, 333);
freq.update(time);
for (int i = 0; i < 999; i++){
freq.add(time + i, 1f);
// TODO: maybe test sums here already.
}
if (freq.score(1f) != 999) fail("Sum should be 999, got instead: " + freq.score(1f));
freq.update(time + 999);
if (freq.score(1f) != 666f) fail("Sum should be 666, got instead: " + freq.score(1f));
freq.update(time + 1332);
if (freq.score(1f) != 333f) fail("Sum should be 333, got instead: " + freq.score(1f));
freq.update(time + 1665);
if (freq.score(1f) != 0f) fail("Sum should be 0, got instead: " + freq.score(1f));
}
@Test
public void testUpdateAlternatingSignumTimes(){
// Basically fails if this generates an exception.
int sig = 1;
ActionFrequency freq = new ActionFrequency(10, 100);
for (int i = 0; i < 1000; i++){
freq.update(i * sig);
sig = sig * -1;
}
}
}