aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test/lux/target.lux
blob: 3158b76ee58102b60d036fb1d972b55d21b37dee (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
(.module:
  [lux #*
   ["_" test (#+ Test)]
   [data
    ["." text]
    [collection
     ["." list]
     ["." set (#+ Set)]]]
   [math
    [number
     ["n" nat]]]]
  [\\
   ["." /]])

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

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

  (def: #export test
    Test
    (<| (_.covering /._)
        (_.for [/.Target])
        ($_ _.and
            (_.cover [<targets>]
                     ..verdict)
            )))
  )