UNPKG

@rohitbakoliya/test-gen

Version:

Quickly generate test cases for stress testing using interactive CLI.

39 lines (38 loc) 1.34 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 ShuffleArray_1 = __importDefault(require("../ShuffleArray")); const GraphUtil_1 = __importDefault(require("../../helper/GraphUtil")); /** * Generates Random unweighted Tree * @param nodesRange node range [minNodes, MaxNodes] * @returns edge set */ const RndUnweightedTree = ({ nodesRange }) => { const nodes = Random_1.default({ min: nodesRange[0], max: nodesRange[1] }); const t = new GraphUtil_1.default(nodes); const p = []; const permutation = []; for (let i = 0; i < nodes; i++) { p.push(Random_1.default({ min: 0, max: Math.max(0, i - 1) })); permutation.push(i); } ShuffleArray_1.default(permutation); for (let i = 1; i < nodes; i++) { t.addEdge(permutation[i] + 1, permutation[p[i]] + 1); } t.suffleEdges(); let output = nodes + '\n'; t.edges.forEach(function (edge) { output += edge.join(' ') + '\n'; }); return { result: t.edges, nodes, output, }; }; exports.default = RndUnweightedTree;