int64 fixes

This commit is contained in:
Jacek Sieka 2020-06-01 17:35:42 +02:00
parent e692aa426f
commit 405f460f9b
No known key found for this signature in database
GPG Key ID: A1B09461ABB656B8
3 changed files with 10 additions and 5 deletions

View File

@ -117,8 +117,8 @@ proc clearCaches*(a: var HashArray, dataIdx: auto) =
func nodesAtLayer*(layer, depth, leaves: int): int = func nodesAtLayer*(layer, depth, leaves: int): int =
## Given a number of leaves, how many nodes do you need at a given layer ## Given a number of leaves, how many nodes do you need at a given layer
## in a binary tree structure? ## in a binary tree structure?
let leavesPerNode = 1 shl (depth - layer) let leavesPerNode = 1'i64 shl (depth - layer)
(leaves + leavesPerNode - 1) div leavesPerNode int((leaves + leavesPerNode - 1) div leavesPerNode)
func cacheNodes*(depth, leaves: int): int = func cacheNodes*(depth, leaves: int): int =
## Total number of nodes needed to cache a tree of a given depth with ## Total number of nodes needed to cache a tree of a given depth with

View File

@ -231,11 +231,10 @@ proc sszCheck(baseDir, sszType, sszSubType: string) =
of "SmallTestStruct": checkBasic(SmallTestStruct, dir, expectedHash) of "SmallTestStruct": checkBasic(SmallTestStruct, dir, expectedHash)
of "FixedTestStruct": checkBasic(FixedTestStruct, dir, expectedHash) of "FixedTestStruct": checkBasic(FixedTestStruct, dir, expectedHash)
of "VarTestStruct": checkBasic(VarTestStruct, dir, expectedHash) of "VarTestStruct": checkBasic(VarTestStruct, dir, expectedHash)
of "ComplexTestStruct": checkBasic(ComplexTestStruct, dir, expectedHash)
of "BitsStruct": checkBasic(BitsStruct, dir, expectedHash)
of "ComplexTestStruct": of "ComplexTestStruct":
checkBasic(ComplexTestStruct, dir, expectedHash) checkBasic(ComplexTestStruct, dir, expectedHash)
checkBasic(HashComplexTestStruct, dir, expectedHash) checkBasic(HashComplexTestStruct, dir, expectedHash)
of "BitsStruct": checkBasic(BitsStruct, dir, expectedHash)
else: else:
raise newException(ValueError, "unknown container in test: " & sszSubType) raise newException(ValueError, "unknown container in test: " & sszSubType)
else: else:

View File

@ -88,7 +88,7 @@ suiteReport "SSZ navigator":
let b = [byte 0x04, 0x05, 0x06].toDigest let b = [byte 0x04, 0x05, 0x06].toDigest
let c = [byte 0x07, 0x08, 0x09].toDigest let c = [byte 0x07, 0x08, 0x09].toDigest
var leaves = HashList[Eth2Digest, int64(1 shl 3)]() var leaves = HashList[Eth2Digest, 1'i64 shl 3]()
leaves.add a leaves.add a
leaves.add b leaves.add b
leaves.add c leaves.add c
@ -98,6 +98,12 @@ suiteReport "SSZ navigator":
leaves.add c leaves.add c
check hash_tree_root(leaves) == hash_tree_root(leaves.data) check hash_tree_root(leaves) == hash_tree_root(leaves.data)
var leaves2 = HashList[Eth2Digest, 1'i64 shl 48]() # Large number!
leaves2.add a
leaves2.add b
leaves2.add c
check hash_tree_root(leaves2) == hash_tree_root(leaves2.data)
suiteReport "SSZ dynamic navigator": suiteReport "SSZ dynamic navigator":
timedTest "navigating fields": timedTest "navigating fields":
var fooOrig = Foo(bar: Bar(b: BarList @[1'u64, 2, 3], baz: Baz(i: 10'u64))) var fooOrig = Foo(bar: Bar(b: BarList @[1'u64, 2, 3], baz: Baz(i: 10'u64)))