diff --git a/is-integer-number.el b/is-integer-number.el new file mode 100644 index 0000000..373460d --- /dev/null +++ b/is-integer-number.el @@ -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))))))