* fix #16542
This commit is contained in:
flywind
2021-01-02 07:32:37 -06:00
committed by GitHub
parent 854ff26ac5
commit d8b1ffc857
2 changed files with 51 additions and 3 deletions

View File

@@ -2,7 +2,7 @@ discard """
targets: "c cpp js"
"""
import hashes
import std/hashes
block hashes:
block hashing:
@@ -75,3 +75,32 @@ block largeSize: # longer than 4 characters
doAssert hash(xx) == hash(ssl, 0, 4)
doAssert hash(xx, 0, 3) == hash(xxl, 0, 3)
doAssert hash(xx, 0, 3) == hash(ssl, 0, 3)
proc main() =
doAssert hash(0.0) == hash(0)
when sizeof(int) == 8:
block:
var s: seq[Hash]
for a in [0.0, 1.0, -1.0, 1000.0, -1000.0]:
let b = hash(a)
doAssert b notin s
s.add b
when defined(js):
doAssert hash(0.345602) == 2035867618
doAssert hash(234567.45) == -20468103
doAssert hash(-9999.283456) == -43247422
doAssert hash(84375674.0) == 707542256
else:
doAssert hash(0.345602) == 387936373221941218
doAssert hash(234567.45) == -8179139172229468551
doAssert hash(-9999.283456) == 5876943921626224834
doAssert hash(84375674.0) == 1964453089107524848
else:
doAssert hash(0.345602) != 0
doAssert hash(234567.45) != 0
doAssert hash(-9999.283456) != 0
doAssert hash(84375674.0) != 0
static: main()
main()