aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test/lux/world/environment.lux
blob: 28bcfc377fc90d03fd0752559e91e51c884d4651 (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
(.module:
  [lux #*
   ["_" test (#+ Test)]
   [abstract
    [monad (#+ do)]]
   [control
    [concurrency
     ["." promise]]]
   [data
    ["." text]
    [collection
     ["." dictionary]
     ["." list]]]
   [math
    ["." random]]]
  {1
   ["." /]})

(def: #export test
  Test
  (<| (_.covering /._)
      (_.with-cover [/.Environment /.Property])
      (do random.monad
        [_ (wrap [])]
        (wrap (do promise.monad
                [environment (promise.future /.read)]
                (_.cover' [/.read]
                          (and (not (dictionary.empty? environment))
                               (|> environment
                                   dictionary.keys
                                   (list.every? (|>> text.empty? not))))))))))