(.using [library [lux (.except) ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification ["$[0]" equivalence]]] [control ["[0]" try (.open: "[1]#[0]" functor)] [parser ["<[0]>" text]]] [math ["[0]" random (.only Random)]]]] [\\program ["[0]" /]] ["$[0]" /// ["[1][0]" time]]) (def: .public random (Random /.Time) $///time.random) (def: .public test Test (<| (_.covering /._) (_.for [/.Time]) (all _.and (_.for [/.equivalence] ($equivalence.spec /.equivalence ..random)) (do random.monad [expected ..random] (all _.and (_.coverage [/.format /.parser] (|> expected /.format (.result /.parser) (try#each (at /.equivalence = expected)) (try.else false))) )) )))