diff options
-rwxr-xr-x | lib/pure/hashes.nim | 4 | ||||
-rw-r--r-- | tests/run/thashes.nim | 8 | ||||
-rw-r--r-- | tests/run/tmath.nim | 14 |
3 files changed, 18 insertions, 8 deletions
diff --git a/lib/pure/hashes.nim b/lib/pure/hashes.nim index 9c086c675..ac6d3c3ce 100755 --- a/lib/pure/hashes.nim +++ b/lib/pure/hashes.nim @@ -122,3 +122,7 @@ proc hash*[T: tuple](x: T): THash = result = result !& hash(f) result = !$result +proc hash*(x: float): THash {.inline.} = + var y = x + 1.0 + result = cast[ptr THash](addr(y))[] + diff --git a/tests/run/thashes.nim b/tests/run/thashes.nim new file mode 100644 index 000000000..c442b43fb --- /dev/null +++ b/tests/run/thashes.nim @@ -0,0 +1,8 @@ +import unittest +import hashes + +suite "hashes": + suite "hashing": + test "0.0 and -0.0 should have the same hash value": + var dummy = 0.0 + check hash(dummy) == hash(-dummy) diff --git a/tests/run/tmath.nim b/tests/run/tmath.nim index 65124306e..a86a3b84c 100644 --- a/tests/run/tmath.nim +++ b/tests/run/tmath.nim @@ -25,14 +25,12 @@ suite "random int": check rand >= 100 suite "random float": - # Enable this once #197 has been resolved - # test "there might be some randomness": - # var set = initSet[float](128) - # for i in 1..10: - # for j in 1..10: - # randomize() - # incl(set, random(1.0)) - # check len(set) == 100 + test "there might be some randomness": + var set = initSet[float](128) + randomize() + for i in 1..100: + incl(set, random(1.0)) + check len(set) == 100 test "single number bounds work": randomize() var rand: float |