aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test/lux/time/date.lux
blob: 325a5f3f34d97b88f9b1b7865f7565b89ff54635 (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 #*
   ["%" data/text/format (#+ format)]
   ["r" math/random (#+ Random)]
   ["_" test (#+ Test)]
   [abstract
    ["." monad (#+ do)]
    {[0 #test]
     [/
      ["$." equivalence]
      ["$." order]
      ["$." codec]]}]]
  [//
   ["_." instant]]
  {1
   ["." / (#+ Date)
    ["." // #_
     ["#." instant]]]})

(def: #export date
  (Random Date)
  (|> _instant.instant (:: r.monad map //instant.date)))

(def: #export test
  Test
  (<| (_.context (%.name (name-of /._)))
      ($_ _.and
          ($equivalence.spec /.equivalence ..date)
          ($order.spec /.order ..date)
          ($codec.spec /.equivalence /.codec ..date)
          )))