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