(.module: [library [lux #* ["_" test (#+ Test)] [abstract [monad (#+ do)] [\\specification ["$." equivalence]]] [data ["." binary #_ ["#T" \\test]]] [math ["." random (#+ Random) ("#\." monad)]]]] ["$." /// #_ ["#." hash]] [\\program ["." / ["//#" /// #_ ["#." hash]]]]) (def: .public random (Random /.Status) ($_ random.or (random\in []) (random.or ($///hash.random ///hash.sha-1) ($///hash.random ///hash.md5)) (random.and ($///hash.random ///hash.sha-1) ($///hash.random ///hash.md5)) )) (def: .public test Test (<| (_.covering /._) (_.for [/.Status] ($_ _.and (_.for [/.equivalence] ($equivalence.spec /.equivalence ..random)) (do random.monad [payload (binaryT.random 1)] (_.cover [/.verified] (case (/.verified payload) (#/.Verified sha1 md5) true _ false))) ))))