package uk.ac.lkl.migen.mockup.polydials.test;
import static org.junit.Assert.*;
import org.junit.Test;
import uk.ac.lkl.migen.mockup.polydials.model.CounterGroup;
import uk.ac.lkl.migen.mockup.polydials.model.CounterModel;
import uk.ac.lkl.migen.mockup.polydials.model.ModuloCounter;
public class TestCounterModel {
@Test
public void addingRemovingFromGroup() {
CounterModel model = new CounterModel();
ModuloCounter counter1 = new ModuloCounter(6);
ModuloCounter counter2 = new ModuloCounter(10);
model.addCounter(counter1);
model.addCounter(counter2);
assertTrue(2 == model.getNumCounters());
assertTrue(0 == model.getNumCounterGroups());
CounterGroup counterGroup1 = new CounterGroup(model);
counterGroup1.addCounter(counter1);
counterGroup1.addCounter(counter2);
model.addCounterGroup(counterGroup1);
assertTrue(2 == model.getNumCounters());
assertTrue(1 == model.getNumCounterGroups());
counterGroup1.removeCounter(counter1);
assertTrue(2 == model.getNumCounters());
assertTrue(1 == model.getNumCounterGroups());
counterGroup1.removeCounter(counter2);
assertTrue(2 == model.getNumCounters());
assertTrue(0 == model.getNumCounterGroups());
}
@Test
public void modulo() {
CounterModel model = new CounterModel();
ModuloCounter counter1 = new ModuloCounter(6);
ModuloCounter counter2 = new ModuloCounter(10);
model.addCounter(counter1);
model.addCounter(counter2);
CounterGroup counterGroup1 = new CounterGroup(model);
counterGroup1.addCounter(counter1);
counterGroup1.addCounter(counter2);
model.addCounterGroup(counterGroup1);
counterGroup1.increment();
counterGroup1.increment();
counterGroup1.increment();
counterGroup1.increment();
counterGroup1.increment();
assertEquals(5, counter1.getValue());
assertEquals(5, counter2.getValue());
counterGroup1.increment();
counterGroup1.increment();
assertEquals(1, counter1.getValue());
assertEquals(7, counter2.getValue());
counterGroup1.increment();
counterGroup1.increment();
counterGroup1.increment();
assertEquals(4, counter1.getValue());
assertEquals(0, counter2.getValue());
}
}
|