(.module: [lux #* ["_" test (#+ Test)] ["." time (#+ Time)] [abstract [monad (#+ do)]] [control ["." try ("#\." functor)] [parser ["<.>" text]]] [math ["." random (#+ Random)] [number ["n" nat] ["i" int]]]] {#program ["." /]}) (def: #export test Test (<| (_.covering /._) ($_ _.and (do random.monad [expected random.time] (_.cover [/.format /.parser] (|> expected /.format (.run /.parser) (try\map (\ time.equivalence = expected)) (try.default false)))) )))