41a8f58ce9e0a6b847fc90379ca25c87072972f0
[Mograsim.git] / era.mi / src / net / mograsim / logic / core / tests / TestBitDisplay.java
1 package net.mograsim.logic.core.tests;\r
2 \r
3 import static org.junit.jupiter.api.Assertions.assertArrayEquals;\r
4 \r
5 import java.util.function.LongConsumer;\r
6 \r
7 import net.mograsim.logic.core.components.BitDisplay;\r
8 import net.mograsim.logic.core.timeline.Timeline;\r
9 import net.mograsim.logic.core.types.Bit;\r
10 import net.mograsim.logic.core.wires.Wire.ReadEnd;\r
11 \r
12 public final class TestBitDisplay extends BitDisplay\r
13 {\r
14 \r
15         public TestBitDisplay(Timeline timeline, ReadEnd in)\r
16         {\r
17                 super(timeline, in);\r
18         }\r
19 \r
20         public void assertDisplays(Bit... expected)\r
21         {\r
22                 assertArrayEquals(expected, getDisplayedValue().getBits());\r
23         }\r
24 \r
25         public void assertAfterSimulationIs(Bit... expected)\r
26         {\r
27                 timeline.executeAll();\r
28                 assertDisplays(expected);\r
29         }\r
30 \r
31         public void assertAfterSimulationIs(LongConsumer r, Bit... expected)\r
32         {\r
33                 while (timeline.hasNext())\r
34                 {\r
35                         timeline.executeNext();\r
36                         r.accept(timeline.getSimulationTime());\r
37                 }\r
38                 assertDisplays(expected);\r
39         }\r
40 \r
41         @Override\r
42         protected void compute()\r
43         {\r
44                 super.compute();\r
45                 System.out.println("update: value is " + getDisplayedValue());\r
46         }\r
47 }\r