From d3cc4de2816de91fd3e86ed4f48f2bd88d5a1f86 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Tue, 11 Jun 2013 21:01:38 +0900 Subject: [PATCH] Fixing typo in integer case of inexact numerator/denominator. Fixes issue #179. --- lib/init-7.scm | 6 +++--- tests/r7rs-tests.scm | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/init-7.scm b/lib/init-7.scm index ff06791f..44fc0446 100644 --- a/lib/init-7.scm +++ b/lib/init-7.scm @@ -1056,14 +1056,14 @@ (if (ratio? x) (ratio-numerator x) (if (inexact? x) - (exact->inexact (ratio-numerator (inexact->exact x))) + (exact->inexact (numerator (inexact->exact x))) x))) (define (denominator x) (if (exact? x) (if (ratio? x) (ratio-denominator x) 1) (if (integer? x) - 1 - (exact->inexact (ratio-denominator (inexact->exact x))))))) + 1.0 + (exact->inexact (denominator (inexact->exact x))))))) (else (cond-expand (complex diff --git a/tests/r7rs-tests.scm b/tests/r7rs-tests.scm index cfbe4ca7..5435bb1a 100644 --- a/tests/r7rs-tests.scm +++ b/tests/r7rs-tests.scm @@ -676,6 +676,8 @@ (test 2.0 (denominator (inexact (/ 6 4)))) (test 11.0 (numerator 5.5)) (test 2.0 (denominator 5.5)) +(test 5.0 (numerator 5.0)) +(test 1.0 (denominator 5.0)) (test -5.0 (floor -4.3)) (test -4.0 (ceiling -4.3))