diff options
author | Eduardo Julian | 2020-11-05 02:31:55 -0400 |
---|---|---|
committer | Eduardo Julian | 2020-11-05 02:31:55 -0400 |
commit | 11cc4a67001162d689eb827f755424a07b99fccb (patch) | |
tree | a689186bf0bef21056a3ad13e8f06f313a3a6989 /stdlib/source/test/lux/world | |
parent | 8ac980fd3b6d2050edc0e631a00028c1e6c28c73 (diff) |
Lightweight machinery for agent-oriented programming.
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/test/lux/world.lux | 4 | ||||
-rw-r--r-- | stdlib/source/test/lux/world/console.lux | 43 |
2 files changed, 46 insertions, 1 deletions
diff --git a/stdlib/source/test/lux/world.lux b/stdlib/source/test/lux/world.lux index c5b0ecc59..a01bdb929 100644 --- a/stdlib/source/test/lux/world.lux +++ b/stdlib/source/test/lux/world.lux @@ -3,11 +3,13 @@ ["_" test (#+ Test)]] ["." / #_ ["#." file] - ["#." shell]]) + ["#." shell] + ["#." console]]) (def: #export test Test ($_ _.and /file.test /shell.test + /console.test )) diff --git a/stdlib/source/test/lux/world/console.lux b/stdlib/source/test/lux/world/console.lux new file mode 100644 index 000000000..d17559cec --- /dev/null +++ b/stdlib/source/test/lux/world/console.lux @@ -0,0 +1,43 @@ +(.module: + [lux #* + ["_" test (#+ Test)] + [abstract + [monad (#+ do)]] + [control + ["." try (#+ Try)] + ["." exception (#+ exception:)]]] + {1 + ["." /]} + {[1 #spec] + ["$." /]}) + +(exception: dead) + +(def: simulation + (/.Simulation Bit) + (structure + (def: (on-read dead?) + (if dead? + (exception.throw ..dead []) + (#try.Success [dead? (char "a")]))) + + (def: (on-read-line dead?) + (if dead? + (exception.throw ..dead []) + (#try.Success [dead? "YOLO"]))) + + (def: (on-write message dead?) + (if dead? + (exception.throw ..dead []) + (#try.Success dead?))) + + (def: (on-close dead?) + (if dead? + (exception.throw ..dead []) + (#try.Success true))))) + +(def: #export test + Test + (<| (_.covering /._) + (_.with-cover [/.mock /.Simulation] + ($/.spec (/.mock ..simulation false))))) |