Skip to content
This repository was archived by the owner on Feb 14, 2025. It is now read-only.

Erreurs lors de l'usage de constantFolding avec modele-social #44

Open
zhouzi opened this issue Jun 13, 2024 · 2 comments
Open

Erreurs lors de l'usage de constantFolding avec modele-social #44

zhouzi opened this issue Jun 13, 2024 · 2 comments
Assignees
Labels
🐛 bug Something isn't working ⚡ optims Issues related to the `optims` module

Comments

@zhouzi
Copy link

zhouzi commented Jun 13, 2024

J'essaie d'appliquer les optimisations de constantFolding au modele-social.

J'ai rencontré une première erreur avec les règles privées, que j'ai pu régler en les passant toutes en non privé manuellement.

Je n'ai plus d'erreur mais l'évaluation retourne undefined, voilà mon code :

import { constantFolding } from "@publicodes/tools/optims";
import rules from "modele-social";
import Engine from "publicodes";

const optimizedRules = constantFolding(new Engine(rules), {
  toKeep(rule) {
    return true;
  },
});

const eurl = new Engine(optimizedRules);

eurl.setSituation({
  "impôt . foyer fiscal . situation de famille": "'célibataire'",
  "impôt . méthode de calcul": "'barème standard'",
  "dirigeant . rémunération . net . après impôt": 40000,
  "dirigeant . indépendant . IJSS": "non",
  "dirigeant . indépendant . revenus étrangers": "non",
  "dirigeant . indépendant . PL . régime général . taux spécifique retraite complémentaire":
    "non",
  "dirigeant . indépendant . conjoint collaborateur": "non",
  "dirigeant . indépendant . cotisations facultatives": "non",
  "entreprise . activités . saisonnière": "non",
  "situation personnelle . RSA": "non",
  "entreprise . activité . nature . libérale . réglementée": "non",
  "entreprise . activité . nature": "'libérale'",
  "situation personnelle . domiciliation fiscale à l'étranger": "non",
  "entreprise . date de création": "01/01/2023",
  "dirigeant . exonérations . ACRE": "non",
  "dirigeant . indépendant . cotisations et contributions . exonérations . pension invalidité":
    "non",
  "entreprise . imposition": "'IS'",
  "entreprise . associés": "'unique'",
  "entreprise . catégorie juridique": "'SARL'",
});

console.log(
  eurl
    .evaluate("dirigeant . indépendant . cotisations et contributions")
    .nodeValue
);
// undefined

Sans passer par l'usage de constantFolding, j'ai bien une valeur de retour (21861).

Il me semble faire un usage correct de constantFolding d'après la documentation et ce que j'en comprends alors je me demande si je ne suis pas tombé sur un bug, mis en lumière par le modele-social ?

Je continue les expérimentations de mon côté.

@EmileRolley
Copy link
Collaborator

L'optimisation n'est pour l'instant utilisé uniquement par le modèle de Nos Gestes Climat. Or, le model-social utilise bien plus de mécanismes. Il est donc fort probable que tous ne soient pas correctement géré côté @publicodes/tools.

Une première étape de debugage serait de regarder le jeux de règle produit par l'appel à constantFolding et de repérer quelles sont les règles qui ont mal été optimisées. Et mon intuition serait de regarder du côté de l'usage des remplacements.

Je vais essayer de regarder ça, mais je ne peux pas garantir que ce sera corrigé rapidement. N'hésites pas à faire part de ton avancement si tu décides de continuer à investiguer 👍

@EmileRolley EmileRolley added 🐛 bug Something isn't working ⚡ optims Issues related to the `optims` module labels Jun 13, 2024
@fmata
Copy link

fmata commented Jul 10, 2024

Nous essayons aussi de l'appliquer à modele-social + nos règles personnalisées, sans succès. Est-ce que vous prévoyez de déminer le terrain de votre côté avec modele-social ? Sans ça, j'ai peur que nous ne puissions pas faire grand chose pour avancer.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🐛 bug Something isn't working ⚡ optims Issues related to the `optims` module
Projects
Status: Short term todo
Development

No branches or pull requests

3 participants