makes tests green again

This commit is contained in:
Andreas Rumpf 2019-09-21 01:15:36 +02:00
commit c2fced129f

View file

@ -811,27 +811,27 @@ proc `$`*(dur: Duration): string =
result = humanizeParts(parts) result = humanizeParts(parts)
proc `+`*(a, b: Duration): Duration {.operator.} = proc `+`*(a, b: Duration): Duration {.operator, extern: "ntAddDuration".} =
## Add two durations together. ## Add two durations together.
runnableExamples: runnableExamples:
doAssert initDuration(seconds = 1) + initDuration(days = 1) == doAssert initDuration(seconds = 1) + initDuration(days = 1) ==
initDuration(seconds = 1, days = 1) initDuration(seconds = 1, days = 1)
addImpl[Duration](a, b) addImpl[Duration](a, b)
proc `-`*(a, b: Duration): Duration {.operator.} = proc `-`*(a, b: Duration): Duration {.operator, extern: "ntSubDuration".} =
## Subtract a duration from another. ## Subtract a duration from another.
runnableExamples: runnableExamples:
doAssert initDuration(seconds = 1, days = 1) - initDuration(seconds = 1) == doAssert initDuration(seconds = 1, days = 1) - initDuration(seconds = 1) ==
initDuration(days = 1) initDuration(days = 1)
subImpl[Duration](a, b) subImpl[Duration](a, b)
proc `-`*(a: Duration): Duration {.operator.} = proc `-`*(a: Duration): Duration {.operator, extern: "ntReverseDuration".} =
## Reverse a duration. ## Reverse a duration.
runnableExamples: runnableExamples:
doAssert -initDuration(seconds = 1) == initDuration(seconds = -1) doAssert -initDuration(seconds = 1) == initDuration(seconds = -1)
normalize[Duration](-a.seconds, -a.nanosecond) normalize[Duration](-a.seconds, -a.nanosecond)
proc `<`*(a, b: Duration): bool {.operator.} = proc `<`*(a, b: Duration): bool {.operator, extern: "ntLtDuration".} =
## Note that a duration can be negative, ## Note that a duration can be negative,
## so even if ``a < b`` is true ``a`` might ## so even if ``a < b`` is true ``a`` might
## represent a larger absolute duration. ## represent a larger absolute duration.
@ -843,10 +843,10 @@ proc `<`*(a, b: Duration): bool {.operator.} =
doAssert initDuration(seconds = -2).abs < initDuration(seconds = 1).abs == false doAssert initDuration(seconds = -2).abs < initDuration(seconds = 1).abs == false
ltImpl(a, b) ltImpl(a, b)
proc `<=`*(a, b: Duration): bool {.operator.} = proc `<=`*(a, b: Duration): bool {.operator, extern: "ntLeDuration".} =
lqImpl(a, b) lqImpl(a, b)
proc `==`*(a, b: Duration): bool {.operator.} = proc `==`*(a, b: Duration): bool {.operator, extern: "ntEqDuration".} =
runnableExamples: runnableExamples:
let let
d1 = initDuration(weeks = 1) d1 = initDuration(weeks = 1)
@ -854,21 +854,21 @@ proc `==`*(a, b: Duration): bool {.operator.} =
doAssert d1 == d2 doAssert d1 == d2
eqImpl(a, b) eqImpl(a, b)
proc `*`*(a: int64, b: Duration): Duration {.operator.} = proc `*`*(a: int64, b: Duration): Duration {.operator, extern: "ntMulInt64Duration".} =
## Multiply a duration by some scalar. ## Multiply a duration by some scalar.
runnableExamples: runnableExamples:
doAssert 5 * initDuration(seconds = 1) == initDuration(seconds = 5) doAssert 5 * initDuration(seconds = 1) == initDuration(seconds = 5)
doAssert 3 * initDuration(minutes = 45) == initDuration(hours = 2, minutes = 15) doAssert 3 * initDuration(minutes = 45) == initDuration(hours = 2, minutes = 15)
normalize[Duration](a * b.seconds, a * b.nanosecond) normalize[Duration](a * b.seconds, a * b.nanosecond)
proc `*`*(a: Duration, b: int64): Duration {.operator.} = proc `*`*(a: Duration, b: int64): Duration {.operator, extern: "ntMulDuration".} =
## Multiply a duration by some scalar. ## Multiply a duration by some scalar.
runnableExamples: runnableExamples:
doAssert initDuration(seconds = 1) * 5 == initDuration(seconds = 5) doAssert initDuration(seconds = 1) * 5 == initDuration(seconds = 5)
doAssert initDuration(minutes = 45) * 3 == initDuration(hours = 2, minutes = 15) doAssert initDuration(minutes = 45) * 3 == initDuration(hours = 2, minutes = 15)
b * a b * a
proc `div`*(a: Duration, b: int64): Duration {.operator.} = proc `div`*(a: Duration, b: int64): Duration {.operator, extern: "ntDivDuration".} =
## Integer division for durations. ## Integer division for durations.
runnableExamples: runnableExamples:
doAssert initDuration(seconds = 3) div 2 == doAssert initDuration(seconds = 3) div 2 ==