Make flo:integer? answer true only for finite inputs.
authorTaylor R Campbell <campbell@mumble.net>
Fri, 16 Nov 2018 17:00:10 +0000 (17:00 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Fri, 16 Nov 2018 17:00:10 +0000 (17:00 +0000)
src/runtime/arith.scm
tests/runtime/test-arith.scm

index 583253e03e15718c1f4b25e5089eba923c0a593d..cd482a9dbd82b5321330db032f6f59416f1f0ab3 100644 (file)
@@ -891,7 +891,8 @@ USA.
 
 (declare (integrate flo:integer?))
 (define (flo:integer? x)
-  (flo:= x (flo:round x)))
+  (and (flo:finite? x)
+       (flo:= x (flo:round x))))
 
 (define (flo:rationalize x e)
   (flo:simplest-rational (flo:- x e) (flo:+ x e)))
index f4177ec9d490eb1a9af7c6979ed6e3cf5d0e5163..c3033b9c2fae92c9969f2a0a4173a56c8194a942 100644 (file)
@@ -401,12 +401,7 @@ USA.
    1/2
    0.1
    1+2i
-   (flo:nan.0))
-  assert-not-integer)
-
-(define-enumerated-test 'not-integer?/broken
-  (vector
+   (flo:nan.0)
    (flo:+inf.0)
    (flo:-inf.0))
-  (lambda (x)
-    (expect-failure (lambda () (assert-not-integer x)))))
\ No newline at end of file
+  assert-not-integer)
\ No newline at end of file