X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Ftests%2FTestBitDisplay.java;fp=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Ftests%2FTestBitDisplay.java;h=9913116354f4179f3c0b2207aa56e6c9c50194e8;hb=d31f9734d6aa233682ef80d7e9322dd500123bfd;hp=0000000000000000000000000000000000000000;hpb=33d4533c5e48fbb5d1d0057f2b08d3d6f8e29a87;p=Mograsim.git diff --git a/era.mi/src/era/mi/logic/tests/TestBitDisplay.java b/era.mi/src/era/mi/logic/tests/TestBitDisplay.java new file mode 100644 index 00000000..99131163 --- /dev/null +++ b/era.mi/src/era/mi/logic/tests/TestBitDisplay.java @@ -0,0 +1,48 @@ +package era.mi.logic.tests; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; + +import java.util.Arrays; +import java.util.function.LongConsumer; + +import era.mi.logic.Bit; +import era.mi.logic.Simulation; +import era.mi.logic.components.BitDisplay; +import era.mi.logic.wires.WireArray; + +public final class TestBitDisplay extends BitDisplay +{ + + public TestBitDisplay(WireArray in) + { + super(in); + } + + public void assertDisplays(Bit... expected) + { + assertArrayEquals(expected, getDisplayedValue()); + } + + public void assertAfterSimulationIs(Bit... expected) + { + Simulation.TIMELINE.executeAll(); + assertDisplays(expected); + } + + public void assertAfterSimulationIs(LongConsumer r, Bit... expected) + { + while (Simulation.TIMELINE.hasNext()) + { + Simulation.TIMELINE.executeNext(); + r.accept(Simulation.TIMELINE.getSimulationTime()); + } + assertDisplays(expected); + } + + @Override + protected void compute() + { + super.compute(); + System.out.println("update: value is " + Arrays.toString(getDisplayedValue())); + } +}