1 | var MIN_INT = require('../number/MIN_INT');
|
2 | var MAX_INT = require('../number/MAX_INT');
|
3 | var rand = require('./rand');
|
4 |
|
5 | /**
|
6 | * Gets random integer inside range or snap to min/max values.
|
7 | */
|
8 | function randInt(min, max){
|
9 | min = min == null? MIN_INT : ~~min;
|
10 | max = max == null? MAX_INT : ~~max;
|
11 | // can't be max + 0.5 otherwise it will round up if `rand`
|
12 | // returns `max` causing it to overflow range.
|
13 | // -0.5 and + 0.49 are required to avoid bias caused by rounding
|
14 | return Math.round( rand(min - 0.5, max + 0.499999999999) );
|
15 | }
|
16 |
|
17 | module.exports = randInt;
|
18 |
|