(.module: [lux #* ["_" test (#+ Test)] [abstract [monad (#+ do)]] [control ["." io] [parser [cli (#+ program:)]]] [data ["." error]] [math ["r" random]]] [spec ["." compositor (#+ Runner Definer) [generation ["." primitive] ["." structure] ["." reference]]]] {1 ["." /]} ## [test ## [luxc ## [lang ## [translation ## ## ["_.T" function] ## ## ["_.T" case] ## ## ["_.T" common] ## ## ["_.T" jvm] ## ## ["_.T" js] ## ## ["_.T" lua] ## ## ["_.T" ruby] ## ## ["_.T" python] ## ## ["_.T" r] ## ## ["_.T" scheme] ## ## ["_.T" common-lisp] ## ## ["_.T" php] ## ]]]] ) (def: (test runner definer) (-> Runner Definer Test) ($_ _.and (primitive.spec runner) (structure.spec runner) (reference.spec runner definer) )) (program: args (<| io.io _.run! (_.times 100) (do r.monad [_ (wrap []) #let [?runner,definer (io.run (do io.monad [platform /.jvm] (compositor.executors platform /.bundle /.expander /.program)))]] (case ?runner,definer (#error.Success [runner definer]) (..test runner definer) (#error.Failure error) (_.fail error)))))