From 2d5b859e4b1d9063f767bbac67c75c7bb801aae2 Mon Sep 17 00:00:00 2001 From: Laurent Bossavit Date: Fri, 14 Jul 2017 11:31:39 +0200 Subject: [PATCH] =?UTF-8?q?:bug:=20R=C3=A9pare=20l'=C3=A9valuation=20et=20?= =?UTF-8?q?l'affichage=20des=20logiques=20num=C3=A9riques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/engine/mecanisms.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/source/engine/mecanisms.js b/source/engine/mecanisms.js index 620587f91..5563c5614 100644 --- a/source/engine/mecanisms.js +++ b/source/engine/mecanisms.js @@ -136,14 +136,23 @@ export let mecanismNumericalLogic = (recurse, k,v) => { conditionNode = recurse(condition), // can be a 'comparison', a 'variable', TODO a 'negation' consequenceNode = mecanismNumericalLogic(recurse, condition, consequence) - let collectMissing = node => - R.concat(collectNodeMissing(conditionNode),collectNodeMissing(consequenceNode)) + let evaluate = (situationGate, parsedRules, node) => { + let collectMissing = node => + R.concat(collectNodeMissing(conditionNode),collectNodeMissing(consequenceNode)) - let evaluate = (situationGate, parsedRules, node) => ({ + let explanation = R.evolve({ + condition: R.curry(evaluateNode)(situationGate, parsedRules), + consequence: R.curry(evaluateNode)(situationGate, parsedRules) + },node.explanation) + + return { ...node, - nodeValue: evaluateNode(situationGate, parsedRules, consequenceNode).nodeValue, - condValue: evaluateNode(situationGate, parsedRules, conditionNode).nodeValue - }) + collectMissing, + explanation, + nodeValue: explanation.consequence.nodeValue, + condValue: explanation.condition.nodeValue + } + } let jsx = (nodeValue, {condition, consequence}) =>
@@ -156,7 +165,6 @@ export let mecanismNumericalLogic = (recurse, k,v) => { return { evaluate, jsx, - collectMissing, explanation: {condition: conditionNode, consequence: consequenceNode}, category: 'condition', text: condition,