X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=tests%2Fnet.mograsim.logic.model.am2900.tests%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2FTestableCircuit.java;fp=tests%2Fnet.mograsim.logic.model.am2900.tests%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2FTestableCircuit.java;h=d36d80ff56254320528b7f2247115c9e7c91c351;hb=7d05144c25daa53e60fc9ed9fd503546a86567f8;hp=0000000000000000000000000000000000000000;hpb=8bed58cd47f4e53a0a83e066d38864aa6875502f;p=Mograsim.git diff --git a/tests/net.mograsim.logic.model.am2900.tests/src/net/mograsim/logic/model/am2900/TestableCircuit.java b/tests/net.mograsim.logic.model.am2900.tests/src/net/mograsim/logic/model/am2900/TestableCircuit.java new file mode 100644 index 00000000..d36d80ff --- /dev/null +++ b/tests/net.mograsim.logic.model.am2900.tests/src/net/mograsim/logic/model/am2900/TestableCircuit.java @@ -0,0 +1,40 @@ +package net.mograsim.logic.model.am2900; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import net.mograsim.logic.model.am2900.util.TestEnvironmentHelper; + +public interface TestableCircuit +{ + void setup(); + + Result run(); + + void clockOn(boolean isClockOn); + + TestEnvironmentHelper getTestEnvironmentHelper(); + + default void assertRunSuccess() + { + assertEquals(Result.SUCCESS, run()); + } + + default void assertFullCycleSuccess() + { + assertRunSuccess(); + clockOn(false); + assertRunSuccess(); + clockOn(true); + assertRunSuccess(); + } + + default void displayState() + { + getTestEnvironmentHelper().displayState(); + } + + public enum Result + { + SUCCESS, OUT_OF_TIME, ERROR; + } +}