Add default 0 as lower bound if range is a number. Update tests
This commit is contained in:
parent
be967d4d01
commit
b30101d07e
3 changed files with 17 additions and 3 deletions
8
index.js
8
index.js
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
10
test.js
|
|
@ -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));
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue