From 24c964a7c7f0bf2c73a56e7b023afcb46eefd359 Mon Sep 17 00:00:00 2001 From: Melvin Philips Date: Thu, 5 Oct 2017 00:18:25 -0700 Subject: [PATCH] Add is.infinite() --- index.js | 2 ++ readme.md | 4 ++++ test.js | 12 ++++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 6ee2179..b3d52b9 100644 --- a/index.js +++ b/index.js @@ -161,4 +161,6 @@ is.inRange = (x, range) => { throw new TypeError(`Invalid range: ${util.inspect(range)}`); }; +is.infinite = x => x === Infinity || x === -Infinity; + module.exports = is; diff --git a/readme.md b/readme.md index be284c4..fab01c1 100644 --- a/readme.md +++ b/readme.md @@ -145,6 +145,10 @@ Check if `value` (number) is in the range of `0` to `upperBound`. is.inRange(3, 10); ``` +##### .infinite(value) + +Check if `value` is `Infinity` or `-Infinity`. + ## FAQ diff --git a/test.js b/test.js index 7fac42f..a2c4337 100644 --- a/test.js +++ b/test.js @@ -89,7 +89,11 @@ const types = new Map([ Object.create(null), new Object() // eslint-disable-line no-new-object ]], - ['integer', 6] + ['integer', 6], + ['infinite', [ + Infinity, + -Infinity + ]] ]); // This ensures a certain method matches only the types @@ -132,7 +136,7 @@ test('is.string', t => { }); test('is.number', t => { - testType(t, 'number', ['nan', 'integer']); + testType(t, 'number', ['nan', 'integer', 'infinite']); }); test('is.boolean', t => { @@ -365,3 +369,7 @@ test('is.inRange', t => { m.inRange(0, [1, 2, 3]); }); }); + +test('is.infinite', t => { + testType(t, 'infinite', ['number']); +});