(.using [library [lux "*" ["_" test {"+" Test}] [abstract [monad {"+" do}]] [math ["[0]" random] [number ["i" int]]]]] [\\library ["[0]" /]] ["$[0]" / "_" ["[1][0]" export]]) (/.import: os "[1]::[0]" ("static" R_OK /.Integer) ("static" W_OK /.Integer)) (def: .public test Test (do [! random.monad] [boolean random.bit integer random.int float random.frac string (random.ascii/lower 1)] (<| (_.covering /._) (`` ($_ _.and (~~ (template [ ] [(_.cover [] (exec (is ) true))] [/.Boolean boolean] [/.Integer integer] [/.Float float] [/.String string] )) (_.for [/.Object] ($_ _.and (~~ (template [] [(_.cover [] (exec (|> [] (as ) (is (Ex (_ a) (/.Object a)))) true))] [/.None] [/.Dict] )))) (_.cover [/.Function /.function] (exec (|> (/.function (_ [input/0 Nat]) Int (.int input/0)) (is /.Function) (is (Ex (_ a) (/.Object a)))) true)) (_.cover [/.import:] (and (i.= (os::R_OK) (os::R_OK)) (not (i.= (os::W_OK) (os::R_OK))))) $/export.test )))))