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=cb0494e1c8b7434017c372b44e3852df1eb38832;hb=5606ceefa2c360772194c85ed884e5f8f06f36aa;hp=0000000000000000000000000000000000000000;hpb=002110424653b282ab9c7ea4b12f967d59e5f66a;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..cb0494e1 --- /dev/null +++ b/era.mi/src/era/mi/logic/tests/TestBitDisplay.java @@ -0,0 +1,47 @@ +package era.mi.logic.tests; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; + +import java.util.function.LongConsumer; + +import era.mi.logic.Simulation; +import era.mi.logic.components.BitDisplay; +import era.mi.logic.types.Bit; +import era.mi.logic.wires.Wire.WireEnd; + +public final class TestBitDisplay extends BitDisplay +{ + + public TestBitDisplay(WireEnd in) + { + super(in); + } + + public void assertDisplays(Bit... expected) + { + assertArrayEquals(expected, getDisplayedValue().getBits()); + } + + 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 " + getDisplayedValue()); + } +}