4b1a5a6c4668736bd8131ce5d74af0ab6b04c51c
[Mograsim.git] / net.mograsim.logic.model.am2900 / test / net / mograsim / logic / model / am2900 / TestableCircuit.java
1 package net.mograsim.logic.model.am2900;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4
5 public interface TestableCircuit
6 {
7         void setup();
8
9         Result run();
10
11         void clockOn(boolean isClockOn);
12
13         default void assertRunSuccess()
14         {
15                 assertEquals(Result.SUCCESS, run());
16         }
17
18         default void assertFullCycleSuccess()
19         {
20                 assertRunSuccess();
21                 clockOn(false);
22                 assertRunSuccess();
23                 clockOn(true);
24                 assertRunSuccess();
25         }
26
27         public enum Result
28         {
29                 SUCCESS, OUT_OF_TIME, ERROR;
30         }
31 }