UNPKG

approvals

Version:

Approval Tests Library - Capturing Human Intelligence

53 lines (52 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.printArray = printArray; exports.printJson = printJson; exports.printCombinations = printCombinations; function printArray(header, list, formatter) { function getDefaultFormatter() { let count = 0; return (t) => `[${count++}] => ${t}`; } formatter = formatter || getDefaultFormatter(); let text = ""; if (header) { text = header + "\n\n\n"; } for (let t of list) { text += formatter(t) + "\n"; } return text; } function printJson(data) { return JSON.stringify(data, null, " "); } function printCombinations(func, ...variations) { const parameterCombinations = generateParameterCombinations(variations); let text = ""; parameterCombinations.forEach((parameters) => { text += print(func, parameters); }); return text; } function generateParameterCombinations(variations, parameterCombinations = [], index = 0, currentParameterCombination = []) { const allParametersProcessed = index === variations.length; if (allParametersProcessed) { parameterCombinations.push(currentParameterCombination); return parameterCombinations; } for (let nextParameter of variations[index]) { generateParameterCombinations(variations, parameterCombinations, index + 1, [...currentParameterCombination, nextParameter]); } return parameterCombinations; } function print(func, parameters) { let output; try { output = func(...parameters); } catch (e) { output = `${e}`; } return `[${parameters}] => ${output}\n`; }