Erreur plus explicite en cas de mécanisme non trouvé

pull/279/head
Mael 2018-07-09 12:13:38 +00:00
parent ea66dbd1d5
commit e69048db3e
3 changed files with 16 additions and 8 deletions

View File

@ -128,6 +128,13 @@ barème:
L'assiette est décomposée en plusieurs tranches, qui sont multipliées par un taux spécifique.
Les tranches sont très souvent exprimées sous forme de facteurs (par exemple [1, 2, 4]) d'une variable que l'on appelle multiplicateur, par exemple le plafond de la sécurité sociale.
barème linéaire:
type: numeric
description: |
C'est un barème en taux non marginaux, très simple. C'est le mécanisme de calcul de l'impôt neutre, aussi appelé impôt non personnalisé.
Il est composé de tranches qui se suivent. Il suffit de trouver l'assiette qui correspond à la tranche, et de multiplier le taux associé avec l'assiette.
complément:
type: numeric
description: |

View File

@ -702,7 +702,7 @@ export let mecanismProduct = (recurse, k, v) => {
à: 1
```
*/
let desugarScale = recurse => ({ tranches }) =>
let desugarScale = recurse => tranches =>
tranches
.map(
t =>

View File

@ -38,6 +38,7 @@ import {
mecanismSum,
mecanismProduct,
mecanismScale,
mecanismLinearScale,
mecanismMax,
mecanismMin,
mecanismError,
@ -223,13 +224,12 @@ export let treatObject = (rules, rule) => rawNode => {
let mecanisms = intersection(keys(rawNode), keys(knownMecanisms))
if (mecanisms.length != 1) {
// eslint-disable-next-line no-console
console.log(
'Erreur : On ne devrait reconnaître que un et un seul mécanisme dans cet objet',
mecanisms,
rawNode
)
throw new Error('OUPS !')
throw new Error(`OUPS : On ne devrait reconnaître que un et un seul mécanisme dans cet objet
Objet YAML : ${JSON.stringify(rawNode)}
Mécanismes implémentés correspondants : ${JSON.stringify(mecanisms)}
Cette liste doit avoir un et un seul élément.
Vérifier que le mécanisme est dans l'objet 'dispatch' et dans les'knownMecanisms.yaml'
`)
}
let k = head(mecanisms),
@ -242,6 +242,7 @@ export let treatObject = (rules, rule) => rawNode => {
somme: mecanismSum,
multiplication: mecanismProduct,
barème: mecanismScale,
'barème linéaire': mecanismLinearScale,
'le maximum de': mecanismMax,
'le minimum de': mecanismMin,
complément: mecanismComplement,