aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test/lux/time/date.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/test/lux/time/date.lux')
-rw-r--r--stdlib/source/test/lux/time/date.lux158
1 files changed, 21 insertions, 137 deletions
diff --git a/stdlib/source/test/lux/time/date.lux b/stdlib/source/test/lux/time/date.lux
index f9a90cb48..935e59c51 100644
--- a/stdlib/source/test/lux/time/date.lux
+++ b/stdlib/source/test/lux/time/date.lux
@@ -1,147 +1,31 @@
(.module:
[lux #*
+ data/text/format
+ ["_" test (#+ Test)]
[control
- [monad (#+ Monad do)]
- pipe]
- [data
- ["." error]]
+ {[0 #test]
+ [/
+ ["$." equivalence]
+ ["$." order]
+ ["$." codec]]}]
[math
- ["r" random ("#;." monad)]]
+ ["r" random (#+ Random)]]
[time
- ["@." instant]
- ["@" date]]]
- lux/test
+ ["@." instant]]]
[//
- ["_." instant]])
-
-(def: month
- (r.Random @.Month)
- (r.either (r.either (r.either (r;wrap #@.January)
- (r.either (r;wrap #@.February)
- (r;wrap #@.March)))
- (r.either (r;wrap #@.April)
- (r.either (r;wrap #@.May)
- (r;wrap #@.June))))
- (r.either (r.either (r;wrap #@.July)
- (r.either (r;wrap #@.August)
- (r;wrap #@.September)))
- (r.either (r;wrap #@.October)
- (r.either (r;wrap #@.November)
- (r;wrap #@.December))))))
-
-(context: "(Month) Equivalence."
- (<| (times 100)
- (do @
- [sample month
- #let [(^open "@/.") @.equivalence]]
- (test "Every value equals itself."
- (@/= sample sample)))))
-
-(context: "(Month) Order."
- (<| (times 100)
- (do @
- [reference month
- sample month
- #let [(^open "@/.") @.order]]
- (test "Valid Order."
- (and (or (@/< reference sample)
- (@/>= reference sample))
- (or (@/> reference sample)
- (@/<= reference sample)))))))
-
-(context: "(Month) Enum."
- (<| (times 100)
- (do @
- [sample month
- #let [(^open "@/.") @.enum]]
- (test "Valid Enum."
- (and (not (@/= (@/succ sample)
- sample))
- (not (@/= (@/pred sample)
- sample))
- (|> sample @/succ @/pred (@/= sample))
- (|> sample @/pred @/succ (@/= sample)))))))
-
-(def: day
- (r.Random @.Day)
- (r.either (r.either (r.either (r;wrap #@.Sunday)
- (r;wrap #@.Monday))
- (r.either (r;wrap #@.Tuesday)
- (r;wrap #@.Wednesday)))
- (r.either (r.either (r;wrap #@.Thursday)
- (r;wrap #@.Friday))
- (r;wrap #@.Saturday))))
-
-(context: "(Day) Equivalence."
- (<| (times 100)
- (do @
- [sample day
- #let [(^open "@/.") @.equivalence]]
- (test "Every value equals itself."
- (@/= sample sample)))))
-
-(context: "(Day) Order."
- (<| (times 100)
- (do @
- [reference day
- sample day
- #let [(^open "@/.") @.order]]
- (test "Valid Order."
- (and (or (@/< reference sample)
- (@/>= reference sample))
- (or (@/> reference sample)
- (@/<= reference sample)))))))
-
-(context: "(Day) Enum."
- (<| (times 100)
- (do @
- [sample day
- #let [(^open "@/.") @.enum]]
- (test "Valid Enum."
- (and (not (@/= (@/succ sample)
- sample))
- (not (@/= (@/pred sample)
- sample))
- (|> sample @/succ @/pred (@/= sample))
- (|> sample @/pred @/succ (@/= sample)))))))
+ ["_." instant]]
+ {1
+ ["." / (#+ Date)]})
(def: #export date
- (r.Random @.Date)
+ (Random Date)
(|> _instant.instant (:: r.monad map @instant.date)))
-(context: "(Date) Equivalence."
- (<| (times 100)
- (do @
- [sample date
- #let [(^open "@/.") @.equivalence]]
- (test "Every value equals itself."
- (@/= sample sample)))))
-
-(context: "(Date) Order."
- (<| (times 100)
- (do @
- [reference date
- sample date
- #let [(^open "@/.") @.order]]
- (test "Valid Order."
- (and (or (@/< reference sample)
- (@/>= reference sample))
- (or (@/> reference sample)
- (@/<= reference sample)))))))
-
-(context: "(Date) Codec"
- (<| (seed 6623983470548808292)
- ## (times 100)
- (do @
- [sample date
- #let [(^open "@/.") @.equivalence
- (^open "@/.") @.codec]]
- (test "Can encode/decode dates."
- (|> sample
- @/encode
- @/decode
- (case> (#error.Success decoded)
- (@/= sample decoded)
-
- (#error.Failure error)
- #0))))))
+(def: #export test
+ Test
+ ($_ _.and
+ ($equivalence.spec /.equivalence ..date)
+ ($order.spec /.order ..date)
+ (<| (_.seed 6623983470548808292)
+ ($codec.spec /.equivalence /.codec ..date))
+ ))