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