Skip to content

Commit

Permalink
Add min and max aliases (#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
Richienb committed Jan 19, 2024
1 parent 0f3f702 commit 95578fd
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 11 deletions.
18 changes: 11 additions & 7 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
export default function mathClamp(number, {minimum, maximum}) {
if (minimum > maximum) {
throw new RangeError('`minimum` should be lower than `maximum`');
export default function mathClamp(number, {min, minimum, max, maximum}) {
// TODO: Remove `minimum` and `maximum` options in the next breaking release
min ??= minimum;
max ??= maximum;

if (min > max) {
throw new RangeError('`min` should be lower than `max`');
}

if (number < minimum) {
return minimum;
if (number < min) {
return min;
}

if (number > maximum) {
return maximum;
if (number > max) {
return max;
}

return number;
Expand Down
8 changes: 4 additions & 4 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@ npm install math-clamp
```js
import mathClamp from 'math-clamp';

mathClamp(1, {minimum: 2, maximum: 4});
mathClamp(1, {min: 2, max: 4});
//=> 2

mathClamp(1, {minimum: 2});
mathClamp(1, {min: 2});
//=> 2

mathClamp(5, {maximum: 4});
mathClamp(5, {max: 4});
//=> 4
```

## API

### mathClamp(number, {minimum?, maximum?})
### mathClamp(number, {min?, max?})

## Related

Expand Down
32 changes: 32 additions & 0 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,45 @@ import mathClamp from './index.js';

test('main', t => {
t.is(mathClamp(1, {minimum: 1, maximum: 1}), 1);
t.is(mathClamp(1, {min: 1, maximum: 1}), 1);
t.is(mathClamp(1, {minimum: 1, max: 1}), 1);
t.is(mathClamp(1, {min: 1, max: 1}), 1);

t.is(mathClamp(2, {minimum: 1, maximum: 3}), 2);
t.is(mathClamp(2, {min: 1, maximum: 3}), 2);
t.is(mathClamp(2, {minimum: 1, max: 3}), 2);
t.is(mathClamp(2, {min: 1, max: 3}), 2);

t.is(mathClamp(1, {minimum: 2, maximum: 4}), 2);
t.is(mathClamp(1, {min: 2, maximum: 4}), 2);
t.is(mathClamp(1, {minimum: 2, max: 4}), 2);
t.is(mathClamp(1, {min: 2, max: 4}), 2);

t.is(mathClamp(5, {minimum: 1, maximum: 4}), 4);
t.is(mathClamp(5, {min: 1, maximum: 4}), 4);
t.is(mathClamp(5, {minimum: 1, max: 4}), 4);
t.is(mathClamp(5, {min: 1, max: 4}), 4);

t.is(mathClamp(5, {minimum: 1}), 5);
t.is(mathClamp(5, {min: 1}), 5);

t.is(mathClamp(1, {minimum: 1}), 1);
t.is(mathClamp(1, {min: 1}), 1);

t.is(mathClamp(0, {minimum: 1}), 1);
t.is(mathClamp(0, {min: 1}), 1);

t.is(mathClamp(5, {maximum: 1}), 1);
t.is(mathClamp(5, {max: 1}), 1);

t.is(mathClamp(1, {maximum: 1}), 1);
t.is(mathClamp(1, {max: 1}), 1);

t.is(mathClamp(0, {maximum: 1}), 0);
t.is(mathClamp(0, {max: 1}), 0);

t.is(mathClamp(2, {max: 1, maximum: 3}), 1);
t.is(mathClamp(1, {min: 3, minimum: 2}), 3);
t.is(mathClamp(5, {min: 2, minimum: 1, max: 3, maximum: 4}), 3);
t.is(mathClamp(0, {min: 2, minimum: 1, max: 3, maximum: 4}), 2);
});

0 comments on commit 95578fd

Please sign in to comment.