comparison tests/automated/lisp-tests.el @ 5912:47ffa085a9ad

Fix a bug when passing a float to truncate and giving a bignum result. src/ChangeLog addition: 2015-05-10 Aidan Kehoe <kehoea@parhasard.net> * floatfns.c (truncate_one_float): Fix a bug here when double_to_integer() (and previously float_to_int()) returned a bignum; this was silently treated as a fixnum, giving consistently incorrect remainders and less consistently-incorrect but still buggy divisors. tests/ChangeLog addition: Check that a bug when supplying #'truncate with one float that rounds to a bignum, has been fixed.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 10 May 2015 23:55:41 +0100
parents 48386fd60fd0
children 1af53d35dd53
comparison
equal deleted inserted replaced
5911:48386fd60fd0 5912:47ffa085a9ad
1984 (when (featurep 'bigfloat) 1984 (when (featurep 'bigfloat)
1985 (Assert-rounding-floating (coerce pi 'bigfloat) (coerce e 'bigfloat))) 1985 (Assert-rounding-floating (coerce pi 'bigfloat) (coerce e 'bigfloat)))
1986 (when (featurep 'bignum) 1986 (when (featurep 'bignum)
1987 (assert (not (evenp most-positive-fixnum)) t 1987 (assert (not (evenp most-positive-fixnum)) t
1988 "In the unlikely event that most-positive-fixnum is even, rewrite this.") 1988 "In the unlikely event that most-positive-fixnum is even, rewrite this.")
1989 (Assert (equal (multiple-value-list (truncate (+ most-positive-fixnum 2.0)))
1990 (list (+ most-positive-fixnum 2) 0.0))
1991 "checking a bug in single-argument truncate's remainder fixed")
1989 (Assert-rounding (1+ most-positive-fixnum) (* 2 most-positive-fixnum) 1992 (Assert-rounding (1+ most-positive-fixnum) (* 2 most-positive-fixnum)
1990 :one-floor-result `(,(1+ most-positive-fixnum) 0) 1993 :one-floor-result `(,(1+ most-positive-fixnum) 0)
1991 :two-floor-result `(0 ,(1+ most-positive-fixnum)) 1994 :two-floor-result `(0 ,(1+ most-positive-fixnum))
1992 :one-ffloor-result `(,(float (1+ most-positive-fixnum)) 0) 1995 :one-ffloor-result `(,(float (1+ most-positive-fixnum)) 0)
1993 :two-ffloor-result `(0.0 ,(1+ most-positive-fixnum)) 1996 :two-ffloor-result `(0.0 ,(1+ most-positive-fixnum))