Test equality and ordering of various things with NaN.
authorTaylor R Campbell <campbell@mumble.net>
Sun, 18 Nov 2018 03:10:04 +0000 (03:10 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sun, 18 Nov 2018 06:11:42 +0000 (06:11 +0000)
Alas, <= and >= are broken.

tests/runtime/test-arith.scm

index 6fc78c05d5bd365b5af4e3b559f0ee3f77943a26..0070016841123b80a365f085c4bfb4bfbf9a9c9e 100644 (file)
@@ -129,6 +129,20 @@ USA.
   (vector (flo:-inf.0) -2. -1 -0. 0 +0. +1 +2. (flo:+inf.0))
   (lambda (v) (assert-nan (/ v (flo:nan.0)))))
 
+(define-enumerated-test 'nan-order
+  (vector 0 0. -0. 1 1. -1 -1. (flo:-inf.0) (flo:+inf.0) (flo:nan.0))
+  (lambda (x)
+    (assert-false (= x (flo:nan.0)))
+    (assert-false (< x (flo:nan.0)))
+    (expect-failure (lambda () (assert-false (>= x (flo:nan.0)))))
+    (assert-false (> x (flo:nan.0)))
+    (expect-failure (lambda () (assert-false (<= x (flo:nan.0)))))
+    (assert-false (= (flo:nan.0) x))
+    (assert-false (< (flo:nan.0) x))
+    (expect-failure (lambda () (assert-false (>= (flo:nan.0) x))))
+    (assert-false (> (flo:nan.0) x))
+    (expect-failure (lambda () (assert-false (<= (flo:nan.0) x))))))
+
 (define-enumerated-test 'inf*0-exact
   (vector (list 0 (flo:+inf.0))
           (list 0 (flo:-inf.0))