@rohitbakoliya/test-gen
Version:
Quickly generate test cases for stress testing using interactive CLI.
46 lines (45 loc) • 1.66 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Random_1 = __importDefault(require("../helper/Random"));
const RndNumber_1 = __importDefault(require("./RndNumber"));
const RndString_1 = __importDefault(require("./RndString"));
/**
* Random 2D grid generator either with regex or numeric range
* @returns 2D grid within provided dimention range
*/
const RndGrid = ({ minDim, maxDim, pattern, range }) => {
const [minRow, minCol] = minDim;
const [maxRow, maxCol] = maxDim;
const row = Random_1.default({ min: minRow, max: maxRow });
const col = Random_1.default({ max: maxCol, min: minCol });
const arr = Array.from(Array(row), () => new Array(col));
let output = `${row} ${col}\n`;
for (let i = 0; i < row; i++) {
for (let j = 0; j < col; j++) {
if (pattern !== undefined) {
arr[i][j] = RndString_1.default({ pattern }).result;
}
else {
if (range === undefined) {
throw new Error('Either pattern or range must be provided');
}
else {
const [min, max] = range;
arr[i][j] = RndNumber_1.default({ min, max }).result;
}
}
output += arr[i][j] + ' ';
}
output += '\n';
}
return {
result: arr,
row,
col,
output,
};
};
exports.default = RndGrid;