Add default 0 as lower bound if range is a number. Update tests

This commit is contained in:
glhrmv 2017-09-25 15:07:22 +01:00
parent be967d4d01
commit b30101d07e
3 changed files with 17 additions and 3 deletions

View file

@ -148,6 +148,12 @@ const typedArrayTypes = new Set([
]);
is.typedArray = x => typedArrayTypes.has(getObjectType(x));
is.inRange = (x, arr) => is.array(arr) && (x >= Math.min.apply(Math, arr)) && (x <= Math.max.apply(Math, arr));
is.inRange = (x, range) => {
if (is.number(range)) {
return (x >= Math.min(0, range)) && (x <= Math.max(range, 0));
}
return (is.array(range)) && (x >= Math.min.apply(Math, range)) && (x <= Math.max.apply(Math, range));
};
module.exports = is;

View file

@ -123,6 +123,8 @@ Check to see if the value is within a given range, for example `is.inRange(3, [0
The range supplied can be an array of any size, though this will only check for
the minimum and maximum values in it.
If `range` is a number (e.g., `is.inRange(3, 10)`), it will be treated as a range of 0 to `range`.
## FAQ
### Why yet another type checking module?

10
test.js
View file

@ -296,7 +296,13 @@ test('is.typedArray', t => {
test('is.inRange', t => {
const x = 3;
const arr = [0, 5];
t.true(m.inRange(x, arr));
t.true(m.inRange(x, [0, 5]));
t.true(m.inRange(x, [5, 0]));
t.true(m.inRange(x, [-5, 5]));
t.true(m.inRange(x, [5, -5]));
t.false(m.inRange(x, [4, 8]));
t.true(m.inRange(x, 10));
t.false(m.inRange(x, 2));
});