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