aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/test/program.lux
blob: 40eb214c255b7a103ab98c6849055eb934339e76 (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
(.module:
  [lux #*
   ["_" test (#+ Test)]
   [abstract
    [monad (#+ do)]]
   [control
    ["." io]
    [parser
     [cli (#+ program:)]]]
   [math
    ["r" random]]]
  [spec
   ["." compositor (#+ Runner)
    [generation
     ["." primitive]
     ["." structure]]]]
  {1
   ["." /]}
  ## [test
  ##  [luxc
  ##   [lang
  ##    [translation
  ##     ## ["_.T" function]
  ##     ## ["_.T" reference]
  ##     ## ["_.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)
  (-> Runner Test)
  ($_ _.and
      (primitive.spec runner)
      (structure.spec runner)
      ))

(program: args
  (<| io.io
      _.run!
      (_.times 100)
      (do r.monad
        [_ (wrap [])
         #let [platform (io.run /.jvm)]])
      (..test (compositor.runner platform
                                 /.bundle
                                 /.expander
                                 /.program))))