diff options
author | Eduardo Julian | 2021-01-03 07:48:12 -0400 |
---|---|---|
committer | Eduardo Julian | 2021-01-03 07:48:12 -0400 |
commit | c03bd9f9787fb9f383c57b4ebb0fa9d49abbfaa1 (patch) | |
tree | 68a7f2f043eff00492ffe2b5e442bae98167a873 /stdlib/source/test/aedifex/artifact | |
parent | 02d27daeacac74785c2b0f4d1ce03d432377a36e (diff) |
Place the "program:" macro of "lux/control/parser/cli" in its own module.
Diffstat (limited to 'stdlib/source/test/aedifex/artifact')
-rw-r--r-- | stdlib/source/test/aedifex/artifact/time_stamp/date.lux | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/stdlib/source/test/aedifex/artifact/time_stamp/date.lux b/stdlib/source/test/aedifex/artifact/time_stamp/date.lux new file mode 100644 index 000000000..0f4b5b7d3 --- /dev/null +++ b/stdlib/source/test/aedifex/artifact/time_stamp/date.lux @@ -0,0 +1,44 @@ +(.module: + [lux #* + ["_" test (#+ Test)] + [abstract + [monad (#+ do)]] + [control + ["." try ("#\." functor)] + [parser + ["<.>" text]]] + [math + ["." random (#+ Random)] + [number + ["n" nat] + ["i" int]]] + [time + ["." date (#+ Date)] + ["." year]]] + {#program + ["." /]}) + +(def: #export random + (Random Date) + (random.one (function (_ raw) + (try.to_maybe + (do try.monad + [year (|> raw date.year year.value i.abs (i.% +10,000) year.year)] + (date.date year + (date.month raw) + (date.day_of_month raw))))) + random.date)) + +(def: #export test + Test + (<| (_.covering /._) + ($_ _.and + (do random.monad + [expected ..random] + (_.cover [/.format /.parser] + (|> expected + /.format + (<text>.run /.parser) + (try\map (\ date.equivalence = expected)) + (try.default false)))) + ))) |