tweak: output an object instead of an array

This commit is contained in:
NunoSempere 2022-05-03 12:16:50 -04:00
parent f412a7a183
commit 545d896f18
3 changed files with 42 additions and 7 deletions

View File

@ -2,5 +2,5 @@ import { transformer } from "./index.js";
let printer = (_) => null; let printer = (_) => null;
let getSimpleSquiggleOutput = (string) => transformer(string, printer); let getSimpleSquiggleOutput = (string) => transformer(string, printer);
let result = getSimpleSquiggleOutput("(1 to 10)/(1 to 20)"); let result = getSimpleSquiggleOutput("(1 to 10)/(1 to 20)").squiggleString;
console.log(result); console.log(result);

View File

@ -229,7 +229,7 @@ let preprocessor = (string, print = console.log) => {
}; };
// preprocessor("1.2 to 10.5 * 1.1 to 20 * 1 to 2.5 * 1 to 5"); // preprocessor("1.2 to 10.5 * 1.1 to 20 * 1 to 2.5 * 1 to 5");
let customToStringHandlerLognormals = (node, options) => { let customToStringHandlerToGuesstimateSyntax = (node, options) => {
if (isArgLognormal(node)) { if (isArgLognormal(node)) {
let factors = getFactors(node); let factors = getFactors(node);
// print(node); // print(node);
@ -239,6 +239,33 @@ let customToStringHandlerLognormals = (node, options) => {
} }
}; };
let toPrecision2 = (f) => f.toPrecision(2);
let toShortGuesstimateString = (node) => {
if (isArgLognormal(node)) {
let factors = getFactors(node);
// print(node);
// print(factors);
let ninetyPercentCI = to90PercentCI(factors[0], factors[1]);
return `${toPrecision2(ninetyPercentCI[0])} to ${toPrecision2(
ninetyPercentCI[1]
)}`;
} else {
return null;
}
};
let to90CIArray = (node) => {
if (isArgLognormal(node)) {
let factors = getFactors(node);
// print(node);
// print(factors);
let ninetyPercentCI = to90PercentCI(factors[0], factors[1]);
return [ninetyPercentCI[0], ninetyPercentCI[1]];
} else {
return null;
}
};
export function transformer(string, print = console.log) { export function transformer(string, print = console.log) {
string = preprocessor(string, print); string = preprocessor(string, print);
let transformerOutput = transformerInner(string); let transformerOutput = transformerInner(string);
@ -253,8 +280,14 @@ export function transformer(string, print = console.log) {
transformerOutput = transformerInner(string); transformerOutput = transformerInner(string);
stringNew = transformerOutput.toString(); stringNew = transformerOutput.toString();
} }
let stringNewAs90PercentCI = transformerOutput.toString({ let squiggleString = stringNew;
handler: customToStringHandlerLognormals, let shortGuesstimateString = toShortGuesstimateString(transformerOutput);
}); let array90CI = to90CIArray(transformerOutput);
return [stringNew, stringNewAs90PercentCI]; // console.log(transformerOutput);
let result = {
squiggleString: squiggleString,
shortGuesstimateString: shortGuesstimateString,
array90CI: array90CI,
};
return result;
} }

View File

@ -14,7 +14,9 @@ let testTransformer = (string) => {
let result = transformer(string, print); let result = transformer(string, print);
print(""); print("");
console.groupEnd(); console.groupEnd();
console.log(`=> ${result}`); console.log(`=> ${result.squiggleString}`);
print("");
print(result);
print("-".repeat(52)); print("-".repeat(52));
console.log(""); console.log("");
}; };