Timeline updated (executeUntil, setTimeFunction)
[Mograsim.git] / era.mi / src / era / mi / logic / tests / ComponentTest.java
index 831349d..ffd6550 100644 (file)
@@ -1,5 +1,6 @@
 package era.mi.logic.tests;\r
 \r
+import static org.junit.Assert.assertTrue;\r
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;\r
 import static org.junit.jupiter.api.Assertions.assertEquals;\r
 import static org.junit.jupiter.api.Assertions.fail;\r
@@ -284,6 +285,42 @@ class ComponentTest
                assertEquals(-1, a.getSignedValue());\r
        }\r
 \r
+       boolean flag = false;\r
+\r
+       @Test\r
+       void simpleTimelineTest()\r
+       {\r
+               Timeline t = new Timeline(3);\r
+               flag = false;\r
+               t.addEvent((e) ->\r
+               {\r
+                       if (!flag)\r
+                               fail();\r
+                       flag = false;\r
+               }, 15);\r
+               t.addEvent((e) ->\r
+               {\r
+                       if (flag)\r
+                               fail();\r
+                       flag = true;\r
+               }, 10);\r
+               t.addEvent((e) ->\r
+               {\r
+                       if (flag)\r
+                               fail();\r
+                       flag = true;\r
+               }, 20);\r
+               t.addEvent((e) ->\r
+               {\r
+                       fail("Only supposed to execute until timestamp 20, not 25");\r
+               }, 25);\r
+\r
+               t.executeUntil(t.laterThan(20), 100);\r
+\r
+               if (!flag)\r
+                       fail();\r
+       }\r
+\r
        @Test\r
        void multipleInputs()\r
        {\r