diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/test/lux/time/date.lux | 158 |
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)) + )) |