emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] feature/bignum 8fb995b 17/24: Make min and max handle bign


From: Tom Tromey
Subject: [Emacs-diffs] feature/bignum 8fb995b 17/24: Make min and max handle bignums
Date: Fri, 13 Jul 2018 00:25:09 -0400 (EDT)

branch: feature/bignum
commit 8fb995b9e360270b6a4d7b7732a127a6234eba23
Author: Tom Tromey <address@hidden>
Commit: Tom Tromey <address@hidden>

    Make min and max handle bignums
    
    * src/data.c (minmax_driver): Handle bignums.
    * test/src/data-tests.el (data-tests-minmax): New test.
---
 src/data.c             | 4 ++--
 test/src/data-tests.el | 7 +++++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/data.c b/src/data.c
index 2e366b5..7ded836 100644
--- a/src/data.c
+++ b/src/data.c
@@ -3119,11 +3119,11 @@ minmax_driver (ptrdiff_t nargs, Lisp_Object *args,
               enum Arith_Comparison comparison)
 {
   Lisp_Object accum = args[0];
-  CHECK_FIXNUM_OR_FLOAT_COERCE_MARKER (accum);
+  CHECK_NUMBER_COERCE_MARKER (accum);
   for (ptrdiff_t argnum = 1; argnum < nargs; argnum++)
     {
       Lisp_Object val = args[argnum];
-      CHECK_FIXNUM_OR_FLOAT_COERCE_MARKER (val);
+      CHECK_NUMBER_COERCE_MARKER (val);
       if (!NILP (arithcompare (val, accum, comparison)))
        accum = val;
       else if (FLOATP (val) && isnan (XFLOAT_DATA (val)))
diff --git a/test/src/data-tests.el b/test/src/data-tests.el
index 561b7bd..4565cfb 100644
--- a/test/src/data-tests.el
+++ b/test/src/data-tests.el
@@ -590,4 +590,11 @@ comparing the subr with a much slower lisp implementation."
 (ert-deftest data-tests-logcount ()
   (should (= (logcount (read "#xffffffffffffffffffffffffffffffff")) 128)))
 
+(ert-deftest data-tests-minmax ()
+  (let ((a (- most-negative-fixnum 1))
+        (b (+ most-positive-fixnum 1))
+        (c 0))
+    (should (= (min a b c) a))
+    (should (= (max a b c) b))))
+
 ;;; data-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]