diff --git a/source/engine/grammar.ne b/source/engine/grammar.ne index e17a9a5d7..04c85cbe9 100644 --- a/source/engine/grammar.ne +++ b/source/engine/grammar.ne @@ -32,11 +32,8 @@ Comparable -> ( AdditionSubstraction | NonNumericTerminal) {% ([[e]]) => e %} NonNumericTerminal -> Boolean {% id %} | String {% id %} - | NegatedVariable {% id %} -NegatedVariable -> "≠" _ Variable {% ([,,{variable}]) => ({'≠': {explanation: variable} }) %} - FilteredVariable -> Variable _ Filter {% filteredVariable %} Filter -> "[" VariableFragment "]" {% ([,filter]) => filter %} diff --git a/source/engine/parse.js b/source/engine/parse.js index 5dca8e9f2..daba3a3fa 100644 --- a/source/engine/parse.js +++ b/source/engine/parse.js @@ -47,7 +47,6 @@ import { } from './mecanisms' import { Node } from './mecanismViews/common' import { - parseNegatedReference, parseReference, parseReferenceTransforms } from './parseReference' @@ -152,10 +151,6 @@ export let parseObject = (rules, rule, parsedRules) => rawNode => { variations: mecanismVariations, synchronisation: mecanismSynchronisation, ...operationDispatch, - '≠': () => - parseNegatedReference( - parseReference(rules, rule, parsedRules)(v.explanation) - ), filter: () => parseReferenceTransforms(rules, rule, parsedRules)({ filter: v.filter, diff --git a/source/engine/parseReference.js b/source/engine/parseReference.js index 18c40b710..dc25ef334 100644 --- a/source/engine/parseReference.js +++ b/source/engine/parseReference.js @@ -217,40 +217,3 @@ export let parseReferenceTransforms = ( evaluate: evaluateTransforms(node.evaluate) } } - -export let parseNegatedReference = variable => { - let evaluate = (cache, situation, parsedRules, node) => { - let explanation = evaluateNode( - cache, - situation, - parsedRules, - node.explanation - ), - nodeValue = explanation.nodeValue == null ? null : !explanation.nodeValue, - missingVariables = explanation.missingVariables - - return rewriteNode(node, nodeValue, explanation, missingVariables) - } - - let jsx = (nodeValue, explanation) => ( - - Non{' '} - {makeJsx(explanation)} - - } - /> - ) - - return { - evaluate, - jsx, - category: 'mecanism', - name: 'négation', - type: 'boolean', - explanation: variable - } -} diff --git a/source/règles/base.yaml b/source/règles/base.yaml index e285e1969..fff14d37e 100644 --- a/source/règles/base.yaml +++ b/source/règles/base.yaml @@ -753,7 +753,7 @@ - si: toutes ces conditions: - brut de base [mensuel] < SMIC [mensuel] - - ≠ assimilé salarié + - assimilé salarié != oui niveau: avertissement message: | Le salaire saisi est inférieur au SMIC. @@ -2038,8 +2038,8 @@ - si: toutes ces conditions: - cotisations . assiette < plafond de réduction - - ≠ statut JEI - - ≠ assimilé salarié + - statut JEI != oui + - assimilé salarié != oui alors: 3.45% - sinon: 5.25% références: @@ -2403,8 +2403,8 @@ - si: toutes ces conditions: - cotisations . assiette < plafond de réduction employeur - - ≠ statut JEI - - ≠ assimilé salarié + - statut JEI != oui + - assimilé salarié != oui alors: 7% - sinon: 13% - attributs: @@ -3327,7 +3327,7 @@ formule: toutes ces conditions: - entreprise . catégorie d'activité . libérale règlementée - - ≠ rattachée à la CIPAV + - rattachée à la CIPAV != oui note: D'autres conditions d'exclusions existent, il faudra les compléter, mais la question de la catégorie d'activité doit avant être complétée. - nom: indépendant @@ -3372,7 +3372,7 @@ formule: une de ces conditions: - toutes ces conditions: - - ≠ contrat salarié + - contrat salarié != oui - entreprise . catégorie d'activité . libérale règlementée - toutes ces conditions: - entreprise . année d'activité @@ -3547,7 +3547,7 @@ titre: assiette retraite de base formule: variations: - - si: ≠ situation personnelle . RSA + - si: situation personnelle . RSA != oui alors: le maximum de: - 11.5% * plafond sécurité sociale temps plein @@ -3619,7 +3619,7 @@ titre: assiette invalidité et décès formule: variations: - - si: ≠ situation personnelle . RSA + - si: situation personnelle . RSA != oui alors: le maximum de: - 11.5% * plafond sécurité sociale temps plein diff --git a/source/règles/externalized.yaml b/source/règles/externalized.yaml index a13052597..e41e2e203 100644 --- a/source/règles/externalized.yaml +++ b/source/règles/externalized.yaml @@ -580,7 +580,7 @@ contrat salarié . salaire . brut de base: - si: toutes ces conditions: - 'brut de base [mensuel] < SMIC [mensuel]' - - ≠ assimilé salarié + - assimilé salarié != oui niveau: avertissement message: | The wage entered is lower than the minimum wage. @@ -599,7 +599,7 @@ contrat salarié . salaire . brut de base: - si: toutes ces conditions: - 'brut de base [mensuel] < SMIC [mensuel]' - - ≠ assimilé salarié + - assimilé salarié != oui niveau: avertissement message: | Le salaire saisi est inférieur au SMIC. diff --git a/test/inversion.test.js b/test/inversion.test.js index 68bdac6c4..603f1353c 100644 --- a/test/inversion.test.js +++ b/test/inversion.test.js @@ -145,7 +145,7 @@ describe('inversions', () => { - si: cadre alors: taux: 80% - - si: ≠ cadre + - si: cadre != oui alors: taux: 70% diff --git a/test/mecanisms.test.js b/test/mecanisms.test.js index c4a6a3089..d4f7b366c 100644 --- a/test/mecanisms.test.js +++ b/test/mecanisms.test.js @@ -11,11 +11,12 @@ import { collectMissingVariables } from '../source/engine/generateQuestions' import testSuites from './load-mecanism-tests' import * as R from 'ramda' import { isNumeric } from '../source/utils' +import { serialiseUnit } from 'Engine/units' describe('Mécanismes', () => testSuites.map(([suiteName, suite]) => suite.map( - ({ exemples, test }) => + ({ exemples, test, 'unité attendue': unit }) => exemples && describe(`Suite ${suiteName}, test : ${test || 'Nom de test (propriété "test") manquant dans la variable contenant ces "exemples"'}`, () => @@ -51,6 +52,10 @@ describe('Mécanismes', () => if (expectedMissing) { expect(missing).to.eql(expectedMissing) } + + if (unit) { + expect(serialiseUnit(target.unit)).to.eql(unit) + } }) )) ) diff --git a/test/mécanismes/expressions.yaml b/test/mécanismes/expressions.yaml index 36c6d4bc1..cabd3204e 100644 --- a/test/mécanismes/expressions.yaml +++ b/test/mécanismes/expressions.yaml @@ -133,7 +133,7 @@ - valeur attendue: true - test: négation - formule: ≠ CDD . poursuivi en CDI + formule: CDD . poursuivi en CDI != oui exemples: - situation: CDD . poursuivi en CDI: oui diff --git a/test/mécanismes/multiplication.yaml b/test/mécanismes/multiplication.yaml index a3fe67ed4..65a57dc62 100644 --- a/test/mécanismes/multiplication.yaml +++ b/test/mécanismes/multiplication.yaml @@ -6,6 +6,7 @@ multiplication: assiette: mon assiette taux: 3% + unité attendue: € exemples: - nom: entier diff --git a/test/mécanismes/variations.yaml b/test/mécanismes/variations.yaml index d8b362ce7..566d800e8 100644 --- a/test/mécanismes/variations.yaml +++ b/test/mécanismes/variations.yaml @@ -21,7 +21,7 @@ variations: - si: statut cadre alors: 2300 - - si: ≠ statut cadre + - si: statut cadre != oui alors: 2100 exemples: @@ -143,7 +143,7 @@ - si: statut cadre alors: taux: 8% - - si: ≠ statut cadre + - si: statut cadre != oui alors: taux: 5%