(.require [library [lux (.except) [abstract [monad (.only do)]] [data ["[0]" text (.use "[1]#[0]" equivalence)]] [math ["[0]" random]] [test ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" artifact] ["[1][0]" snapshot] [// ["$[0]" artifact]]] [\\program ["[0]" /]]) (def .public test Test (<| (_.covering /._) (all _.and (do random.monad [sample $artifact.random] (all _.and (_.coverage [/.remote_artifact_uri /.remote_project_uri] (not (text#= (/.remote_artifact_uri sample) (/.remote_project_uri sample)))) (_.coverage [/.local_uri] (let [remote_artifact_uri (/.remote_artifact_uri sample) remote_project_uri (/.remote_project_uri sample)] (and (not (text#= remote_artifact_uri (/.local_uri remote_artifact_uri))) (not (text#= remote_project_uri (/.local_uri remote_project_uri)))))) (_.coverage [/.remote_uri] (let [remote_artifact_uri (/.remote_artifact_uri sample) remote_project_uri (/.remote_project_uri sample)] (and (text#= remote_artifact_uri (/.remote_uri remote_artifact_uri)) (text#= remote_project_uri (/.remote_uri remote_project_uri)) (|> remote_artifact_uri /.local_uri /.remote_uri (text#= remote_artifact_uri)) (|> remote_project_uri /.local_uri /.remote_uri (text#= remote_project_uri))))) )) /artifact.test /snapshot.test )))