diff options
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/source/lux/time/duration.lux | 2 | ||||
-rw-r--r-- | stdlib/test/test/lux/time/duration.lux | 38 |
2 files changed, 23 insertions, 17 deletions
diff --git a/stdlib/source/lux/time/duration.lux b/stdlib/source/lux/time/duration.lux index 61f2452a6..2adc023a2 100644 --- a/stdlib/source/lux/time/duration.lux +++ b/stdlib/source/lux/time/duration.lux @@ -102,7 +102,7 @@ (def: (lex-section suffix) (-> Text (l;Lexer Int)) (|> (p;codec number;Codec<Text,Int> (l;many l;decimal)) - (p;before (l;this suffix)) + (p;before (p;seq (l;this suffix) (p;not l;alpha))) (p;default 0))) (def: lex-duration diff --git a/stdlib/test/test/lux/time/duration.lux b/stdlib/test/test/lux/time/duration.lux index 020c198e6..d10b9b57c 100644 --- a/stdlib/test/test/lux/time/duration.lux +++ b/stdlib/test/test/lux/time/duration.lux @@ -49,26 +49,32 @@ (test "Merging a duration with it's opposite yields an empty duration." (|> sample (@;merge (@;scale -1 sample)) (@/= @;empty))) (test "Can frame a duration in terms of another." - (if (or (and (@;positive? frame) (@;positive? sample)) - (and (@;negative? frame) (@;negative? sample))) - (|> sample (@;frame frame) (@/< frame)) - (or (or (@;neutral? frame) (@;neutral? sample)) - (|> sample (@;frame frame) (@;scale -1) (@/< (if (@;negative? frame) - (@;scale -1 frame) - frame)))))) - )) + (cond (and (@;positive? frame) (@;positive? sample)) + (|> sample (@;frame frame) (@/< frame)) + + (and (@;negative? frame) (@;negative? sample)) + (|> sample (@;frame frame) (@/> frame)) + + (or (or (@;neutral? frame) (@;neutral? sample)) + (|> sample + (@;frame frame) + (@;scale -1) + (@/< (if (@;negative? frame) + (@;scale -1 frame) + frame)))))))) (context: "Codec" #seed +9664448049824422386 [sample duration #let [(^open "@/") @;Eq<Duration> (^open "@/") @;Codec<Text,Duration>]] - (test "Can encode/decode durations." - (|> sample - @/encode - @/decode - (pipe;case> (#R;Success decoded) - (@/= sample decoded) + (exec + (test "Can encode/decode durations." + (|> sample + @/encode + @/decode + (pipe;case> (#R;Success decoded) + (@/= sample decoded) - (#R;Error error) - false)))) + (#R;Error error) + false))))) |