Évalue l'expression dans le contexte du moteur (règle et situation).
Pour des raisons de performance, les résultats intermédiaires sont enregistrés
dans un cache. Par conséquent, les prochains appels seront plus rapides.
**Arguments**
-`expression`: la formule à évaluer (type `string`). Cela peut-être une
référence vers une règle, une expression arithmétique, tout ce que la
grammaire publicode permet.
-`options`: un objet de configuration pour l'évaluation
-`unit`: spécifie l'unité dans laquelle le résultat doit être retourné.
Si la valeur retournée par le calcul est un nombre, ce dernier sera converti dans l'unité demandée. Ainsi `evaluate('prix', {unit: '€'})` équivaut à `evaluate('prix [€]')`. Une erreur est levée si l'unité n'est pas compatible avec la formule.
-`useDefaultValues` (par défaut `true`): option pour forcer l'utilisation des valeurs par défaut des règles.
Si sa valeur est à `false` et qu'il manque des valeurs dans la situation pour que le calcul soit effectué, ces dernières seront remontée dans les `missingsVariables` de l'objet retourné, et la valeur sera `null`.
**Retourne**
Un objet javascript de type `EvaluatedNode` contenant la valeur calculée.
> **Attention !** Il est déconseillé d'utiliser directement les valeurs présentes
> dans l'objet retourné, étant donné que leur forme va très probablement changer
> au cours des prochaines versions du moteur.
> Utilisez la fonction `formatNode(evaluationResult)` autant que possible pour
> afficher la valeur retournée.
-`missingVariables`: contient les valeur manquante lorsque `useDefaultValues`
est mis à `false`.
-`nodeValue`: la valeur calculée
-`isApplicable`: si l'expression évaluée est une référence à une règle, alors
ce booléen indique si la règle est applicable ou non
-`evaluatedNode` : l'objet retourné lors de l'appel à la fonction
d'évaluation du moteur `evaluate(expression)`
-`options` : configuration pour le formatage
-`language`: le langage utilisé pour le formatage (par défaut `fr`)
-`precision`: le nombre de chiffre après la virgule pour le formatage des nombres (par défaut `2`)
-`displayedUnit`: l'unité à afficher pour le formatage des nombres. Outrepasse l'unité définie dans le calcul (on peut donc forcer l'unité affichée à une autre que celle retournée par le calcul, même si elle ne sont pas compatibles)
**Retourne**
La chaîne de caractère correspondant à la valeur bien formatée.