Gros changements en perspective :
- Supprime la notion de période, au bénéfice de celle d'unité
(`période : mensuelle` devient `unité: €/mois`)
- Améliore les rapports d'erreur avec des messages plus clair
- Ajoute un avertissement lorsque des types ne sont pas compatible
- Ajoute la conversion automatique d'unité dans le moteur
- Ajoute une notion d'unité par défaut de la simulation,
c'est l'unité vers laquelle les règles qui ne spécifient pas
d'unité seront converties
- Ajoute une notion d'unité par défaut des règles, qui spécifie
l'unité de la règle qui prévaut lorsque qu'il n'y a pas
d'unité par défaut de la simulation (utile pour les question ou
pour s'assurer du bon type d'une règle)
Et pour faire passer les tests jest au passage.
A noter : il faudra vraiment se pencher sur la notion d'applicable / non applicable
Une variable non applicable a une valeur '0' / 'false', mais une variable
à false n'est pas considérée comme non applicable. Je pense qu'il serait avantageux
de simplifier le modèle en introduisant une symetrie entre applicable si et la valeur
d'une variable.
- Ajout d'un avertissement (le stage n'est pas un contrat de travail)
- Ajout des traductions
- D'avantage d'utilisation de "rend non applicable"
- Une modification de parentDependency pour prendre un compte que
"contrat stage" est maintenant un enum CDI | CDD | Stage plutôt qu'un
boolean true | false.
On affiche les prochaines questions. Super intéressant pour pouvoir
sauter directement à une question précise sans se taper toutes les
questions une par une.
Remplacement de Montant par Value
Rétablissement des explications simu salarié
Possibilité de définir des objegtifs secondaires qui sont calculés mais
pas affichés par targetSelectuon
Comme pendant l'évaluation et son objet cache, parsedRules est construit
au fur et à mesure du parsing sous la forme [dottedName]: parsedRule
Cela nous permet pendant le parsing de faire l'annotation de type et de
faire moins de boulot lors de l'évaluation
Problème :
- (presque fixé) dans l'inversion on produisait des références de variables pour le JSX
=> boucle infinie
- dans chiffre d'affaire, notre implé un peu bizarre fait une référence
de variables a priori circulaire, mais gérée par les variations. Or
pendant le parsing on parcourt évidemment toutes les branches sans les
évaluer. Sachant qu'on implémente ce cache parsedRules surtout pour les
unités, peut on garder la formule ainsi et simplement stocker 'chiffre
d'affaires': 'currently being parsed' pour éviter la boucle infinie ?