random-object
Version:
Generates a js object of random depth and width for testing purposes
38 lines (32 loc) • 1.26 kB
JavaScript
;
var _util = require('./util');
var randomObject = function randomObject() {
var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.random1To10)();
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _util.random1To10)();
var ret = {};
if (width === 0) {
return ret;
} else if (depth === 0) {
for (var i = 0; i < width; i++) {
ret[(0, _util.randomAlphaNumeric)()] = (0, _util.randomAlphaNumeric)();
}
} else {
ret[(0, _util.randomAlphaNumeric)()] = singleWidthObject(depth - 1);
for (var _i = 0; _i < width - 1; _i++) {
if ((0, _util.random1To10)() > 5) {
ret[(0, _util.randomAlphaNumeric)()] = (0, _util.randomAlphaNumeric)();
} else {
ret[(0, _util.randomAlphaNumeric)()] = singleWidthObject((0, _util.randomMax)(depth - 1));
}
}
}
return ret;
};
var singleWidthObject = function singleWidthObject(depth) {
var ret = {};
ret[(0, _util.randomAlphaNumeric)()] = depth === 0 ? (0, _util.randomAlphaNumeric)() : singleWidthObject(depth - 1);
return ret;
};
module.exports = {
randomObject: randomObject
};