blob: a46dd6ded105c4be45ba8c5f94cf23f40c9283d4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
(.module:
[library
[lux "*"
["_" test {"+" Test}]
[abstract
[monad {"+" do}]]
[control
["[0]" io]]
[math
["[0]" random]]]]
[\\library
["[0]" /]])
(/.import: (os/getenv [/.String] "io" "?" /.String))
(def: .public test
Test
(do [! random.monad]
[boolean random.bit
integer random.int
float random.frac
string (random.ascii/lower 1)]
(<| (_.covering /._)
(`` ($_ _.and
(~~ (template [<type> <sample>]
[(_.cover [<type>]
(exec
(: <type> <sample>)
true))]
[/.Boolean boolean]
[/.Integer integer]
[/.Float float]
[/.String string]
))
(_.for [/.Object]
($_ _.and
(~~ (template [<type>]
[(_.cover [<type>]
(exec
(|> []
(:as <type>)
(: (Ex (_ a) (/.Object a))))
true))]
[/.Nil]
[/.Table]
))))
(_.cover [/.Function /.closure]
(exec
(|> (/.closure [input/0] input/0)
(: /.Function)
(: (Ex (_ a) (/.Object a))))
true))
(_.cover [/.import:]
(case (io.run! (..os/getenv string))
{.#Some _} true
{.#None} true))
)))))
|