summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xlib/pure/hashes.nim4
-rw-r--r--tests/run/thashes.nim8
-rw-r--r--tests/run/tmath.nim14
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