Create is-integer-number.el

This commit is contained in:
Andros Fenollosa 2024-02-13 16:17:19 +01:00 committed by GitHub
parent 6c5ac80296
commit be5619ebc3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

24
is-integer-number.el Normal file
View File

@ -0,0 +1,24 @@
(require 'seq)
;; Test
;; Run M-x ert
(ert-deftest test-is-integer-number ()
(seq-doseq (i (number-sequence 0 100))
(should (is-integer-number i))))
(ert-deftest test-is-integer-number-float ()
(seq-doseq (i (number-sequence 0 100))
(should (is-integer-number (float i)))))
(ert-deftest test-is-integer-number-float-false ()
(seq-doseq (i (number-sequence 0 100))
(should (not (is-integer-number (+ i (/ (1+ (random 8)) 10.0)))))))
;; Code
(defun is-integer-number (num)
"Return t if NUM is an integer number, nil otherwise."
(or (zerop num)
(integerp num)
(and (floatp num) (equal num (float (truncate num))))))