parent
00e06bba28
commit
0a29c05a1b
1 changed files with 10 additions and 1 deletions
|
|
@ -436,7 +436,7 @@ proc divMod*(dividend, divisor: Int128): tuple[quotient, remainder: Int128] =
|
||||||
result.quotient = -quotient
|
result.quotient = -quotient
|
||||||
else:
|
else:
|
||||||
result.quotient = quotient
|
result.quotient = quotient
|
||||||
if isNegativeB:
|
if isNegativeA:
|
||||||
result.remainder = -dividend
|
result.remainder = -dividend
|
||||||
else:
|
else:
|
||||||
result.remainder = dividend
|
result.remainder = dividend
|
||||||
|
|
@ -676,3 +676,12 @@ when isMainModule:
|
||||||
|
|
||||||
doAssert $high(Int128) == "170141183460469231731687303715884105727"
|
doAssert $high(Int128) == "170141183460469231731687303715884105727"
|
||||||
doAssert $low(Int128) == "-170141183460469231731687303715884105728"
|
doAssert $low(Int128) == "-170141183460469231731687303715884105728"
|
||||||
|
|
||||||
|
var ma = 100'i64
|
||||||
|
var mb = 13
|
||||||
|
|
||||||
|
# sign correctness
|
||||||
|
doAssert divMod(toInt128( ma),toInt128( mb)) == (toInt128( ma div mb), toInt128( ma mod mb))
|
||||||
|
doAssert divMod(toInt128(-ma),toInt128( mb)) == (toInt128(-ma div mb), toInt128(-ma mod mb))
|
||||||
|
doAssert divMod(toInt128( ma),toInt128(-mb)) == (toInt128( ma div -mb), toInt128( ma mod -mb))
|
||||||
|
doAssert divMod(toInt128(-ma),toInt128(-mb)) == (toInt128(-ma div -mb), toInt128(-ma mod -mb))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue