random-fixture-data
Version:
Random fixture data generator cloned from boo1ean/casual by Egor Gumenyuk to provide mixed-case methods that pass jshint tests where camelcase is set to true...
59 lines (44 loc) • 1.15 kB
JavaScript
var MersenneTwister = require('mersenne-twister');
// Pseudorandom number generator
var generator = new MersenneTwister();
var array_of = function(n, generator) {
var result = [];
for (var i = 0; i < n; ++i) {
result.push(generator());
}
return result;
};
var provider = {
integer: function(from, to) {
from = typeof from === 'undefined' ? -1000 : from - 0;
to = typeof to === 'undefined' ? +1000 : to - 0;
return Math.round(from + (to - from) * this.random);
},
digit: function() {
return Math.abs(this.integer(0) % 10);
},
random: function() {
return generator.random();
},
double: function(from, to) {
from = typeof from === 'undefined' ? -1000 : from - 0;
to = typeof to === 'undefined' ? +1000 : to - 0;
return from + (to - from) * this.random;
},
array_of_digits: function(n) {
n = n || 7;
return array_of(n, this._digit);
},
array_of_integers: function(n) {
n = n || 7;
return array_of(n, this._integer);
},
array_of_doubles: function(n) {
n = n || 7;
return array_of(n, this._double);
},
seed: function(seed) {
generator.init_seed(seed);
}
};
module.exports = provider;