Reformatted everything. Eclipse built-in Linewrapping/Comments 140 chars
[Mograsim.git] / era.mi / src / era / mi / logic / tests / TestBitDisplay.java
1 package era.mi.logic.tests;
2
3 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
4
5 import java.util.Arrays;
6 import java.util.function.LongConsumer;
7
8 import era.mi.logic.Bit;
9 import era.mi.logic.Simulation;
10 import era.mi.logic.components.BitDisplay;
11 import era.mi.logic.wires.WireArray;
12
13 public final class TestBitDisplay extends BitDisplay {
14
15         public TestBitDisplay(WireArray in) {
16                 super(in);
17         }
18
19         public void assertDisplays(Bit... expected) {
20                 assertArrayEquals(expected, getDisplayedValue());
21         }
22
23         public void assertAfterSimulationIs(Bit... expected) {
24                 Simulation.TIMELINE.executeAll();
25                 assertDisplays(expected);
26         }
27
28         public void assertAfterSimulationIs(LongConsumer r, Bit... expected) {
29                 while (Simulation.TIMELINE.hasNext()) {
30                         Simulation.TIMELINE.executeNext();
31                         r.accept(Simulation.TIMELINE.getSimulationTime());
32                 }
33                 assertDisplays(expected);
34         }
35
36         @Override
37         protected void compute() {
38                 super.compute();
39                 System.out.println("update: value is " + Arrays.toString(getDisplayedValue()));
40         }
41 }