diff options
Diffstat (limited to 'tests/oracle')
| -rw-r--r-- | tests/oracle/faults.aup | 22 | ||||
| -rw-r--r-- | tests/oracle/faults.pure | 19 | ||||
| -rw-r--r-- | tests/oracle/steps.pure | 23 |
3 files changed, 64 insertions, 0 deletions
diff --git a/tests/oracle/faults.aup b/tests/oracle/faults.aup new file mode 100644 index 0000000..cb91f17 --- /dev/null +++ b/tests/oracle/faults.aup @@ -0,0 +1,22 @@ +# Each input fails on some presses; a failed event changes nothing. +state q = 1 +state r = 0 +state s = 5 +input divide = key KeyD +input grow = key KeyG +input bound = key KeyB +view shown = r + +on divide.down { + r = r + 1 + q = 10 / (q - 1) +} + +on grow.down { + s = s * 1e200 +} + +on bound.down { + r = r + 1 + s = clamp(s, r, 3) +} diff --git a/tests/oracle/faults.pure b/tests/oracle/faults.pure new file mode 100644 index 0000000..598c853 --- /dev/null +++ b/tests/oracle/faults.pure @@ -0,0 +1,19 @@ +# Each input fails on some presses; a failed event changes nothing. +state q = 1 +state r = 0 +state s = 5 +input divide = KeyD +input grow = KeyG +input bound = KeyB +text shown(0, 0, r, "r") +on divide.down { + r = r + 1 + q = 10 / (q - 1) +} +on grow.down { + s = s * 1e200 +} +on bound.down { + r = r + 1 + s = clamp(s, r, 3) +} diff --git a/tests/oracle/steps.pure b/tests/oracle/steps.pure new file mode 100644 index 0000000..3c09dbb --- /dev/null +++ b/tests/oracle/steps.pure @@ -0,0 +1,23 @@ +# The workbench has no else; the aup else-if chain is written as exclusive ifs. +state level = 0 +state band = 0 +input up = ArrowUp +input down = ArrowDown +text shown(0, 0, band, "band") +on up.down { + level = level + 1 +} +on down.down { + level = level - 1 +} +on frame { + if level > 2 { + band = 2 + } + if level <= 2 && level > 0 { + band = 1 + } + if level <= 0 { + band = 0 + } +} |
