(.module: [library [lux #* ["_" test (#+ Test)] [abstract [monad (#+ do)] [\\specification ["$." equivalence]]] [control ["." try ("#\." functor)] [parser ["<.>" text]]] [math ["." random (#+ Random)]]]] [\\program ["." /]] ["$." /// #_ ["#." time]]) (def: .public random (Random /.Time) $///time.random) (def: .public test Test (<| (_.covering /._) (_.for [/.Time]) ($_ _.and (_.for [/.equivalence] ($equivalence.spec /.equivalence ..random)) (do random.monad [expected ..random] ($_ _.and (_.cover [/.format /.parser] (|> expected /.format (.result /.parser) (try\each (\ /.equivalence = expected)) (try.else false))) )) )))