summaryrefslogtreecommitdiff
path: root/tests/count.scade
diff options
context:
space:
mode:
Diffstat (limited to 'tests/count.scade')
-rw-r--r--tests/count.scade36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/count.scade b/tests/count.scade
new file mode 100644
index 0000000..c5ce47d
--- /dev/null
+++ b/tests/count.scade
@@ -0,0 +1,36 @@
+node count() returns (c: int)
+let
+ c = 0 -> (1 + pre c);
+tel
+
+node resettable_count (r: bool) returns (c: int)
+let
+ c = (restart count every r)();
+tel
+
+node nat() returns (s: int) s = 1 -> (1 + pre s);
+
+node rst_clk(rst: bool; clock h: bool)
+ returns (s: int; t: int)
+let
+ s = (restart nat every rst) ();
+ t = merge(h; ((restart nat every rst) (() when h)); 0 when not h);
+tel
+
+node even_times(c: bool; i: int) returns (o: int)
+let
+ automaton
+ initial state EVEN
+ unless if c resume ODD;
+ let
+ o = i+1;
+ tel
+
+ state ODD
+ unless if c resume EVEN;
+ let
+ o = -2 * i;
+ tel
+ returns o;
+tel
+