Add an explicit test for negating zero with (- x).
authorTaylor R Campbell <campbell@mumble.net>
Fri, 16 Nov 2018 07:08:07 +0000 (07:08 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Fri, 16 Nov 2018 08:25:07 +0000 (08:25 +0000)
Currently xfail for some cases because of incorrect optimization in
sf.

tests/runtime/test-arith.scm

index acffa9c887dd4b100bdf9ba7a6d33d841b93ccc9..312b43b66f97a2e4f6395c936649ee6af4841655 100644 (file)
@@ -365,4 +365,16 @@ USA.
           (theta (vector-ref v 2)))
       (if (zero? theta)
           (assert-eqv (atan y x) theta)
-          (assert-<= (relerr theta (atan y x)) 1e-15)))))
\ No newline at end of file
+          (assert-<= (relerr theta (atan y x)) 1e-15)))))
+
+(define-enumerated-test 'negate-zero
+  (vector
+   (vector 0. -0.)
+   (vector -0. 0.))
+  (lambda (v)
+    (let ((x (vector-ref v 0))
+          (y (vector-ref v 1)))
+      (if (flo:= -1. (flo:copysign 1. x))
+          (assert-eqv (- x) y)
+          (expect-failure (lambda () (assert-eqv (- x) y))))
+      (assert-eqv (- 0 (flo:copysign 1. x)) (flo:copysign 1. y)))))
\ No newline at end of file