(make-polar mag 0) should always be mag even if infinite.
authorTaylor R Campbell <campbell@mumble.net>
Sun, 18 Nov 2018 01:42:55 +0000 (01:42 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sun, 18 Nov 2018 01:42:55 +0000 (01:42 +0000)
tests/runtime/test-arith.scm

index 333383941670cd2434025979509e84d35cf23bb2..7c533512a4e2cb983c59b4e6e63f1cf40d112d32 100644 (file)
@@ -41,6 +41,9 @@ USA.
 (define assert-not-integer
   (predicate-assertion not-integer? "not integer"))
 
+(define assert-real
+  (predicate-assertion real? "real number"))
+
 (define (define-enumerated-test prefix elements procedure)
   (let ((n (vector-length elements)))
     (do ((i 0 (+ i 1))) ((>= i n))
@@ -134,6 +137,16 @@ USA.
   (lambda (l)
     (assert-nan (apply * l))))
 
+(define-enumerated-test 'polar0-real
+  (vector 0 0. -0. 1 1. -1.)
+  (lambda (magnitude)
+    (assert-real (make-polar magnitude 0))))
+
+(define-enumerated-test 'polar0-real-xfail
+  (vector (flo:+inf.0) (flo:-inf.0))
+  (lambda (magnitude)
+    (expect-failure (lambda () (assert-real (make-polar magnitude 0))))))
+
 (define-enumerated-test 'flo:ulp
   (vector
    (vector (flo:-inf.0) (flo:+inf.0))