aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test/lux/target.lux
blob: f0010eb83076c5af47fe0c27e4a328b840bd4c5b (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
(.require
 [library
  [lux (.except all)
   ["_" test (.only Test)]
   [data
    ["[0]" text]
    [collection
     ["[0]" list]
     ["[0]" set (.only Set)]]]
   [math
    [number
     ["n" nat]]]]]
 [\\library
  ["[0]" /]])

(with_expansions [<targets> (these /.old
                                   /.js
                                   /.jvm
                                   /.lua
                                   /.python
                                   /.ruby
                                   /.common_lisp
                                   /.php
                                   /.r
                                   /.scheme)]
  (def all
    (List /.Target)
    (list <targets>))
  
  (def unique
    (Set /.Target)
    (set.of_list text.hash ..all))

  (def verdict
    (n.= (list.size ..all)
         (set.size ..unique)))

  (def .public test
    Test
    (<| (_.covering /._)
        (_.for [/.Target])
        (.all _.and
              (_.coverage [<targets>]
                ..verdict)
              )))
  )