@mixtape/core
Version:
Supercharged fixture library for organizing and generating test data
32 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var utils_1 = require("../utils");
/**
* The class makes it easy to generate random numbers.
* @implements {ValueGenerator}
*/
var NumberGenerator = /** @class */ (function () {
/**
* Create a new `NumberGenerator`
* @param min - smallest number to generate
* @param max - largest number to generate
*/
function NumberGenerator(min, max) {
var _this = this;
this._min = min;
this._max = max;
utils_1.ensure(function () { return _this._min >= 0; }, 'Minimum value cannot be smaller than 0', RangeError);
utils_1.ensure(function () { return _this._max >= 1; }, 'Maximum value cannot be smaller than 1', RangeError);
utils_1.ensure(function () { return _this._min < _this._max; }, 'Maximum value must be larger than minimum value', RangeError);
}
/**
* Generate random number
* @returns `number`
*/
NumberGenerator.prototype.generate = function () {
return Math.floor(Math.random() * (this._max - this._min + 1) + this._min);
};
return NumberGenerator;
}());
exports.NumberGenerator = NumberGenerator;
//# sourceMappingURL=number-generator.js.map