@rohitbakoliya/test-gen
Version:
Quickly generate test cases for stress testing using interactive CLI.
107 lines (106 loc) • 4.44 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const inquirer_1 = __importDefault(require("inquirer"));
const RndDirectedUnweighted_1 = __importDefault(require("../logic/graphs/RndDirectedUnweighted"));
const RndDirectedWeighted_1 = __importDefault(require("../logic/graphs/RndDirectedWeighted"));
const RndUndirectedUnweighted_1 = __importDefault(require("../logic/graphs/RndUndirectedUnweighted"));
const exportFile_1 = __importDefault(require("../utils/exportFile"));
const questions_1 = require("../utils/questions");
const GraphPrompt = (testCases, fileName) => __awaiter(void 0, void 0, void 0, function* () {
inquirer_1.default.prompt(questions_1.graphQuestion).then((answers) => {
const { graphType } = answers;
switch (graphType) {
case 'Directed Weighted Graph':
DwGraphPrompt(testCases, fileName);
break;
case 'Directed Unweighted Graph':
DuGraphPrompt(testCases, fileName);
break;
case 'Undirected Unweighted Graph':
UuGraphPrompt(testCases, fileName);
break;
case 'default':
throw new Error('oops!! fall through case');
}
});
});
const DwGraphPrompt = (testCases, fileName) => __awaiter(void 0, void 0, void 0, function* () {
inquirer_1.default
.prompt(questions_1.dwGraphQuestion)
.then((answers) => {
// @ts-ignore
const nodesRange = answers.nodesRange
.split(',')
.slice(0, 2)
.map(x => parseInt(x));
// @ts-ignore
const edgesRange = answers.edgesRange
.split(',')
.slice(0, 2)
.map(x => parseInt(x));
// @ts-ignore
const wtRange = answers.wtRange
.split(',')
.slice(0, 2)
.map(x => parseInt(x));
exportFile_1.default({
fileName,
testCases,
func: RndDirectedWeighted_1.default,
params: { nodesRange, edgesRange, wtRange },
});
});
});
const DuGraphPrompt = (testCases, fileName) => __awaiter(void 0, void 0, void 0, function* () {
inquirer_1.default.prompt(questions_1.duGraphQuestion).then((answers) => {
// @ts-ignore
const nodesRange = answers.nodesRange
.split(',')
.slice(0, 2)
.map(x => parseInt(x));
// @ts-ignore
const edgesRange = answers.edgesRange
.split(',')
.slice(0, 2)
.map(x => parseInt(x));
exportFile_1.default({
fileName,
testCases,
func: RndDirectedUnweighted_1.default,
params: { nodesRange, edgesRange },
});
});
});
const UuGraphPrompt = (testCases, fileName) => __awaiter(void 0, void 0, void 0, function* () {
inquirer_1.default.prompt(questions_1.uuGraphQuestion).then((answers) => {
// @ts-ignore
const nodesRange = answers.nodesRange
.split(',')
.slice(0, 2)
.map(x => parseInt(x));
// @ts-ignore
const edgesRange = answers.edgesRange
.split(',')
.slice(0, 2)
.map(x => parseInt(x));
exportFile_1.default({
fileName,
testCases,
func: RndUndirectedUnweighted_1.default,
params: { nodesRange, edgesRange },
});
});
});
exports.default = GraphPrompt;