UNPKG

@rohitbakoliya/test-gen

Version:

Quickly generate test cases for stress testing using interactive CLI.

46 lines (45 loc) 1.66 kB
"use strict"; 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;