690f4a09d56944c30f8fab98f289c293fdc06e70
[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.Wire.WireEnd;\r
12 \r
13 public final class TestBitDisplay extends BitDisplay\r
14 {\r
15 \r
16         public TestBitDisplay(WireEnd in)\r
17         {\r
18                 super(in);\r
19         }\r
20 \r
21         public void assertDisplays(Bit... expected)\r
22         {\r
23                 assertArrayEquals(expected, getDisplayedValue());\r
24         }\r
25 \r
26         public void assertAfterSimulationIs(Bit... expected)\r
27         {\r
28                 Simulation.TIMELINE.executeAll();\r
29                 assertDisplays(expected);\r
30         }\r
31 \r
32         public void assertAfterSimulationIs(LongConsumer r, Bit... expected)\r
33         {\r
34                 while (Simulation.TIMELINE.hasNext())\r
35                 {\r
36                         Simulation.TIMELINE.executeNext();\r
37                         r.accept(Simulation.TIMELINE.getSimulationTime());\r
38                 }\r
39                 assertDisplays(expected);\r
40         }\r
41 \r
42         @Override\r
43         protected void compute()\r
44         {\r
45                 super.compute();\r
46                 System.out.println("update: value is " + Arrays.toString(getDisplayedValue()));\r
47         }\r
48 }\r