From dc863de145e94eac811be5905ed407b3c7f9ff62 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Tue, 3 May 2022 13:03:08 -0400 Subject: [PATCH] tweak: Add lognormal parameters to the output also change documentation, cli and example files --- README.md | 11 +++++++---- src/cli.js | 5 +++-- src/example-import.js | 2 +- src/index.js | 13 +++++++++++++ 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index db31aff..6a54f09 100644 --- a/README.md +++ b/README.md @@ -132,10 +132,13 @@ let getSimpleSquiggleOutput = (string) => transformer(string, printer); // Model let model = "( 2000000000 to 20000000000 ) / ( (1800000 to 2500000) * (0.25 to 0.75) * (0.2 to 5) * (5 to 50) * (0.01 to 0.1) )" let result = getSimpleSquiggleOutput(model); -console.log(result); /* [ - 'lognormal(-0.3465735902799725, 1.1485521838283161)', // lognormal expression - '~0.10690936969938292 to ~4.676858552304103' // 90% confidence interval expression -] */ +console.log(result); /* { + squiggleString: 'lognormal(-0.3465735902799725, 1.1485521838283161)', + lognormalParameters: [ -0.3465735902799725, 1.1485521838283161 ], + shortGuesstimateString: '0.11 to 4.7', + array90CI: [ 0.10690936969938292, 4.676858552304103 ] +} +*/ ``` diff --git a/src/cli.js b/src/cli.js index d72a83a..a8bef23 100644 --- a/src/cli.js +++ b/src/cli.js @@ -15,8 +15,9 @@ let runTransformer = (string) => { let result = transformer(string, print); print(""); console.groupEnd(); - console.log(`=> ${result[0]}`); - console.log(` ( => ${result[1]} )`); + console.log(`=> ${result.squiggleString}`); + console.log(` ( => ${result.shortGuesstimateString} )`); + console.log(""); print("-".repeat(52)); diff --git a/src/example-import.js b/src/example-import.js index 286b2f6..59646f3 100644 --- a/src/example-import.js +++ b/src/example-import.js @@ -2,5 +2,5 @@ import { transformer } from "./index.js"; let printer = (_) => null; let getSimpleSquiggleOutput = (string) => transformer(string, printer); -let result = getSimpleSquiggleOutput("(1 to 10)/(1 to 20)").squiggleString; +let result = getSimpleSquiggleOutput("(1 to 10)/(1 to 20)"); console.log(result); diff --git a/src/index.js b/src/index.js index 43cd1cf..cb64a8a 100644 --- a/src/index.js +++ b/src/index.js @@ -205,6 +205,17 @@ let simplePreprocessor = (string) => { // simplePreprocessor("1 to 10 + 1 to 20"); +let toLognormalParameters = (node) => { + if (isArgLognormal(node)) { + let factors = getFactors(node); + // print(node); + // print(factors); + return [factors[0], factors[1]]; + } else { + return null; + } +}; + let customToStringHandlerTwoDecimals = (node, options) => { if (node.type == "ConstantNode") { return node.value.toFixed(2); @@ -286,11 +297,13 @@ export function transformer(string, print = console.log) { stringNew = transformerOutput.toString(); } let squiggleString = stringNew; + let lognormalParameters = toLognormalParameters(transformerOutput); let shortGuesstimateString = toShortGuesstimateString(transformerOutput); let array90CI = to90CIArray(transformerOutput); // console.log(transformerOutput); let result = { squiggleString: squiggleString, + lognormalParameters: lognormalParameters, shortGuesstimateString: shortGuesstimateString, array90CI: array90CI, };