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