Merged logicui into master
[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.function.LongConsumer;
6
7 import era.mi.logic.Simulation;
8 import era.mi.logic.components.BitDisplay;
9 import era.mi.logic.types.Bit;
10 import era.mi.logic.wires.Wire.WireEnd;
11
12 public final class TestBitDisplay extends BitDisplay
13 {
14
15         public TestBitDisplay(WireEnd in)
16         {
17                 super(in);
18         }
19
20         public void assertDisplays(Bit... expected)
21         {
22                 assertArrayEquals(expected, getDisplayedValue().getBits());
23         }
24
25         public void assertAfterSimulationIs(Bit... expected)
26         {
27                 Simulation.TIMELINE.executeAll();
28                 assertDisplays(expected);
29         }
30
31         public void assertAfterSimulationIs(LongConsumer r, Bit... expected)
32         {
33                 while (Simulation.TIMELINE.hasNext())
34                 {
35                         Simulation.TIMELINE.executeNext();
36                         r.accept(Simulation.TIMELINE.getSimulationTime());
37                 }
38                 assertDisplays(expected);
39         }
40
41         @Override
42         protected void compute()
43         {
44                 super.compute();
45                 System.out.println("update: value is " + getDisplayedValue());
46         }
47 }