blob: 9f78a75b4dd979007c61987059ce131f4f57d042 (
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
["." io]]
[math
["." random]]]]
[\\library
["." /]])
(/.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))
)))))
|