... This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. ... If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. (.require [library [lux (.except) [abstract [monad (.only do)] ["[0]" equivalence ["[1]T" \\test]]] [data ["[0]" binary ["[1]T" \\test]]] [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)]] [test ["_" property (.only Test)]]]] ["$[0]" /// ["[1][0]" hash]] [\\program ["[0]" / (.only) ["//[1]" /// ["[1][0]" hash]]]]) (def .public random (Random /.Status) (all random.or (random#in []) (random.or ($///hash.random ///hash.sha1) ($///hash.random ///hash.md5)) (random.and ($///hash.random ///hash.sha1) ($///hash.random ///hash.md5)) )) (def .public test Test (<| (_.covering /._) (_.for [/.Status] (all _.and (_.for [/.equivalence] (equivalenceT.spec /.equivalence ..random)) (do random.monad [payload (binaryT.random 1)] (_.coverage [/.verified] (when (/.verified payload) {/.#Verified sha1 md5} true _ false))) ))))