makes more tests green
This commit is contained in:
parent
18ca1788f0
commit
d70e292571
4 changed files with 11 additions and 19 deletions
|
|
@ -16,13 +16,6 @@ template sdata(arg: Int128, idx: int): int32 =
|
||||||
|
|
||||||
# encoding least significant int first (like LittleEndian)
|
# encoding least significant int first (like LittleEndian)
|
||||||
|
|
||||||
type
|
|
||||||
InvalidArgument = object of Exception
|
|
||||||
|
|
||||||
template require(cond: bool) =
|
|
||||||
if unlikely(not cond):
|
|
||||||
raise newException(InvalidArgument, "")
|
|
||||||
|
|
||||||
const
|
const
|
||||||
Zero* = Int128(udata: [0'u32,0,0,0])
|
Zero* = Int128(udata: [0'u32,0,0,0])
|
||||||
One* = Int128(udata: [1'u32,0,0,0])
|
One* = Int128(udata: [1'u32,0,0,0])
|
||||||
|
|
@ -378,7 +371,6 @@ proc `*`*(lhs,rhs: Int128): Int128 =
|
||||||
result = result + toInt128(a00 * b32) shl 32
|
result = result + toInt128(a00 * b32) shl 32
|
||||||
|
|
||||||
if isNegative != isNegative(result):
|
if isNegative != isNegative(result):
|
||||||
echo result
|
|
||||||
assert(false, "overflow")
|
assert(false, "overflow")
|
||||||
|
|
||||||
proc `*=`*(a: var Int128, b: Int128) =
|
proc `*=`*(a: var Int128, b: Int128) =
|
||||||
|
|
|
||||||
|
|
@ -396,13 +396,13 @@ proc leValueConv*(a, b: PNode): bool =
|
||||||
case a.kind
|
case a.kind
|
||||||
of nkCharLit..nkUInt64Lit:
|
of nkCharLit..nkUInt64Lit:
|
||||||
case b.kind
|
case b.kind
|
||||||
of nkCharLit..nkUInt64Lit: result = a.intVal <= b.intVal
|
of nkCharLit..nkUInt64Lit: result = a.getInt <= b.getInt
|
||||||
of nkFloatLit..nkFloat128Lit: result = a.intVal <= round(b.floatVal).int
|
of nkFloatLit..nkFloat128Lit: result = a.intVal <= round(b.floatVal).int
|
||||||
else: result = false #internalError(a.info, "leValueConv")
|
else: result = false #internalError(a.info, "leValueConv")
|
||||||
of nkFloatLit..nkFloat128Lit:
|
of nkFloatLit..nkFloat128Lit:
|
||||||
case b.kind
|
case b.kind
|
||||||
of nkFloatLit..nkFloat128Lit: result = a.floatVal <= b.floatVal
|
of nkFloatLit..nkFloat128Lit: result = a.floatVal <= b.floatVal
|
||||||
of nkCharLit..nkUInt64Lit: result = a.floatVal <= toFloat(int(b.intVal))
|
of nkCharLit..nkUInt64Lit: result = a.floatVal <= toFloat64(b.getInt)
|
||||||
else: result = false # internalError(a.info, "leValueConv")
|
else: result = false # internalError(a.info, "leValueConv")
|
||||||
else: result = false # internalError(a.info, "leValueConv")
|
else: result = false # internalError(a.info, "leValueConv")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -211,15 +211,15 @@ proc main() =
|
||||||
|
|
||||||
proc testReverseBitsPerType(x, reversed: uint64) =
|
proc testReverseBitsPerType(x, reversed: uint64) =
|
||||||
doAssert reverseBits(x) == reversed
|
doAssert reverseBits(x) == reversed
|
||||||
doAssert reverseBits(uint32(x)) == uint32(reversed shr 32)
|
doAssert reverseBits(cast[uint32](x)) == cast[uint32](reversed shr 32)
|
||||||
doAssert reverseBits(uint32(x shr 16)) == uint32(reversed shr 16)
|
doAssert reverseBits(cast[uint32](x shr 16)) == cast[uint32](reversed shr 16)
|
||||||
doAssert reverseBits(uint16(x)) == uint16(reversed shr 48)
|
doAssert reverseBits(cast[uint16](x)) == cast[uint16](reversed shr 48)
|
||||||
doAssert reverseBits(uint8(x)) == uint8(reversed shr 56)
|
doAssert reverseBits(cast[uint8](x)) == cast[uint8](reversed shr 56)
|
||||||
|
|
||||||
testReverseBitsInvo(x)
|
testReverseBitsInvo(x)
|
||||||
testReverseBitsInvo(uint32(x))
|
testReverseBitsInvo(cast[uint32](x))
|
||||||
testReverseBitsInvo(uint16(x))
|
testReverseBitsInvo(cast[uint16](x))
|
||||||
testReverseBitsInvo(uint8(x))
|
testReverseBitsInvo(cast[uint8](x))
|
||||||
|
|
||||||
proc testReverseBitsRefl(x, reversed: uint64) =
|
proc testReverseBitsRefl(x, reversed: uint64) =
|
||||||
testReverseBitsPerType(x, reversed)
|
testReverseBitsPerType(x, reversed)
|
||||||
|
|
|
||||||
|
|
@ -69,8 +69,8 @@ macro foo2() =
|
||||||
echo zz
|
echo zz
|
||||||
|
|
||||||
var ww = -9
|
var ww = -9
|
||||||
var vv = ww.uint
|
var vv = cast[uint](ww)
|
||||||
var kk = vv.uint32
|
var kk = cast[uint32](vv)
|
||||||
echo kk
|
echo kk
|
||||||
|
|
||||||
foo()
|
foo()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue