Fixed compilation to examples

Had to rename fields of allocations familiales because of a stupid record field confusion in OCaml
This commit is contained in:
Denis Merigoux 2022-02-07 18:38:31 +01:00
parent 1c4a0bdd5d
commit 5c6a43da57
No known key found for this signature in database
GPG Key ID: EE99DCFA365C3EE3
10 changed files with 9165 additions and 11263 deletions

View File

@ -327,11 +327,13 @@ let format_ctx (type_ordering : Scopelang.Dependency.TVertex.t list) (fmt : Form
Format.fprintf fmt "\t\tself.%a = %a" format_struct_field_name struct_field
format_struct_field_name struct_field))
struct_fields format_struct_name struct_name
(Format.pp_print_list
(if List.length struct_fields > 0 then
Format.pp_print_list
~pp_sep:(fun fmt () -> Format.fprintf fmt " and@ ")
(fun _fmt (struct_field, _) ->
Format.fprintf fmt "self.%a == other.%a" format_struct_field_name struct_field
format_struct_field_name struct_field))
format_struct_field_name struct_field)
else fun fmt _ -> Format.fprintf fmt "True")
struct_fields format_struct_name struct_name
(Format.pp_print_list
~pp_sep:(fun fmt () -> Format.fprintf fmt ",")

View File

@ -69,31 +69,31 @@ déclaration structure EnfantEntrée:
donnée d_a_déjà_ouvert_droit_aux_allocations_familiales contenu booléen
déclaration champ d'application InterfaceAllocationsFamiliales:
entrée date_courante contenu date
entrée enfants contenu collection EnfantEntrée
entrée i_date_courante contenu date
entrée i_enfants contenu collection EnfantEntrée
interne enfants_à_charge contenu collection Enfant
allocations_familiales champ d'application AllocationsFamiliales
entrée ressources_ménage contenu argent
entrée résidence contenu Collectivité
sortie montant_versé contenu argent
entrée personne_charge_effective_permanente_est_parent condition
entrée personne_charge_effective_permanente_remplit_titre_I condition
entrée avait_enfant_à_charge_avant_1er_janvier_2012 condition
entrée i_ressources_ménage contenu argent
entrée i_résidence contenu Collectivité
sortie i_montant_versé contenu argent
entrée i_personne_charge_effective_permanente_est_parent condition
entrée i_personne_charge_effective_permanente_remplit_titre_I condition
entrée i_avait_enfant_à_charge_avant_1er_janvier_2012 condition
champ d'application InterfaceAllocationsFamiliales:
définition allocations_familiales.date_courante égal à date_courante
définition allocations_familiales.date_courante égal à i_date_courante
définition allocations_familiales.enfants_à_charge égal à enfants_à_charge
définition allocations_familiales.ressources_ménage égal à ressources_ménage
définition allocations_familiales.résidence égal à résidence
définition montant_versé égal à allocations_familiales.montant_versé
définition allocations_familiales.ressources_ménage égal à i_ressources_ménage
définition allocations_familiales.résidence égal à i_résidence
définition i_montant_versé égal à allocations_familiales.montant_versé
règle allocations_familiales.personne_charge_effective_permanente_est_parent
sous condition personne_charge_effective_permanente_est_parent conséquence
sous condition i_personne_charge_effective_permanente_est_parent conséquence
rempli
règle allocations_familiales.personne_charge_effective_permanente_remplit_titre_I
sous condition personne_charge_effective_permanente_remplit_titre_I conséquence
sous condition i_personne_charge_effective_permanente_remplit_titre_I conséquence
rempli
règle allocations_familiales.avait_enfant_à_charge_avant_1er_janvier_2012
sous condition avait_enfant_à_charge_avant_1er_janvier_2012 conséquence
sous condition i_avait_enfant_à_charge_avant_1er_janvier_2012 conséquence
rempli
```
@ -109,18 +109,18 @@ particulières imposant une scolarité plus longue.
```catala
champ d'application InterfaceAllocationsFamiliales:
définition enfants_à_charge égal à application pour enfant dans enfants de
définition enfants_à_charge égal à application pour enfant dans i_enfants de
Enfant {
-- identifiant : enfant.d_identifiant
-- rémuneration_mensuelle : enfant.d_rémuneration_mensuelle
-- date_de_naissance : enfant.d_date_de_naissance
-- prise_en_charge : enfant.d_prise_en_charge
-- âge: accès_année de
(|0000-01-01| +@ (date_courante -@ enfant.d_date_de_naissance))
(|0000-01-01| +@ (i_date_courante -@ enfant.d_date_de_naissance))
-- obligation_scolaire :
(si enfant.d_date_de_naissance +@ 3 an >=@ date_courante alors
(si enfant.d_date_de_naissance +@ 3 an >=@ i_date_courante alors
Avant
sinon (si enfant.d_date_de_naissance +@ 16 an >=@ date_courante alors
sinon (si enfant.d_date_de_naissance +@ 16 an >=@ i_date_courante alors
Pendant
sinon Après))
-- a_déjà_ouvert_droit_aux_allocations_familiales:

View File

@ -52,26 +52,26 @@ déclaration champ d'application Test1:
données champ d'application Données
champ d'application Test1:
définition f.enfants égal à
définition f.i_enfants égal à
[données.enfant1;données.enfant2;données.enfant3;données.enfant4]
définition f.ressources_ménage égal à 30 000 €
définition f.date_courante égal à |2020-05-01|
définition f.résidence égal à Métropole
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 351,26€
définition f.i_ressources_ménage égal à 30 000 €
définition f.i_date_courante égal à |2020-05-01|
définition f.i_résidence égal à Métropole
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 351,26€
déclaration champ d'application Test2:
f champ d'application InterfaceAllocationsFamiliales
données champ d'application Données
champ d'application Test2:
définition f.enfants égal à
définition f.i_enfants égal à
[données.enfant1;données.enfant2;données.enfant5]
définition f.ressources_ménage égal à 30 000 €
définition f.date_courante égal à |2020-05-01|
définition f.résidence égal à Métropole
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 216,27€
définition f.i_ressources_ménage égal à 30 000 €
définition f.i_date_courante égal à |2020-05-01|
définition f.i_résidence égal à Métropole
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 216,27€
déclaration champ d'application Test3:
@ -79,42 +79,42 @@ déclaration champ d'application Test3:
données champ d'application Données
champ d'application Test3:
définition f.enfants égal à [données.enfant1]
définition f.ressources_ménage égal à 63540 €
définition f.date_courante égal à |2020-05-01|
définition f.résidence égal à Guyane
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 24,35 €
définition f.i_enfants égal à [données.enfant1]
définition f.i_ressources_ménage égal à 63540 €
définition f.i_date_courante égal à |2020-05-01|
définition f.i_résidence égal à Guyane
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 24,35 €
déclaration champ d'application Test4:
f champ d'application InterfaceAllocationsFamiliales
données champ d'application Données
champ d'application Test4:
définition f.enfants égal à [données.enfant1; données.enfant3]
définition f.ressources_ménage égal à 67 250 €
définition f.date_courante égal à |2020-05-01|
définition f.résidence égal à Métropole
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 99,37€
définition f.i_enfants égal à [données.enfant1; données.enfant3]
définition f.i_ressources_ménage égal à 67 250 €
définition f.i_date_courante égal à |2020-05-01|
définition f.i_résidence égal à Métropole
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 99,37€
déclaration champ d'application Test5:
f champ d'application InterfaceAllocationsFamiliales
données champ d'application Données
champ d'application Test5:
définition f.enfants égal à [données.enfant1]
définition f.ressources_ménage égal à 30 000 €
définition f.date_courante égal à |2020-05-01|
définition f.résidence égal à Métropole
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 0,00€
définition f.i_enfants égal à [données.enfant1]
définition f.i_ressources_ménage égal à 30 000 €
définition f.i_date_courante égal à |2020-05-01|
définition f.i_résidence égal à Métropole
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 0,00€
déclaration champ d'application Test6:
f champ d'application InterfaceAllocationsFamiliales
champ d'application Test6:
définition f.enfants égal à [EnfantEntrée {
définition f.i_enfants égal à [EnfantEntrée {
-- d_identifiant: 0
-- d_date_de_naissance: |2009-11-10|
-- d_rémuneration_mensuelle: 439€
@ -127,30 +127,30 @@ champ d'application Test6:
-- d_prise_en_charge: EffectiveEtPermanente
-- d_a_déjà_ouvert_droit_aux_allocations_familiales: vrai
}]
définition f.ressources_ménage égal à 78 830 €
définition f.date_courante égal à |2020-05-01|
définition f.résidence égal à Guadeloupe
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 66,25€
définition f.i_ressources_ménage égal à 78 830 €
définition f.i_date_courante égal à |2020-05-01|
définition f.i_résidence égal à Guadeloupe
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 66,25€
déclaration champ d'application Test7:
f champ d'application InterfaceAllocationsFamiliales
données champ d'application Données
champ d'application Test7:
définition f.enfants égal à
définition f.i_enfants égal à
[données.enfant1;données.enfant2;données.enfant3;données.enfant4]
définition f.ressources_ménage égal à 30 000 €
définition f.date_courante égal à |2021-02-01|
définition f.résidence égal à Métropole
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 417,51€
définition f.i_ressources_ménage égal à 30 000 €
définition f.i_date_courante égal à |2021-02-01|
définition f.i_résidence égal à Métropole
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 417,51€
déclaration champ d'application Test8:
f champ d'application InterfaceAllocationsFamiliales
champ d'application Test8:
définition f.enfants égal à [EnfantEntrée {
définition f.i_enfants égal à [EnfantEntrée {
-- d_identifiant: 0
-- d_date_de_naissance: |2004-01-01|
-- d_rémuneration_mensuelle: 0€
@ -163,17 +163,17 @@ champ d'application Test8:
-- d_prise_en_charge: EffectiveEtPermanente
-- d_a_déjà_ouvert_droit_aux_allocations_familiales: vrai
}]
définition f.ressources_ménage égal à 69945 €
définition f.date_courante égal à |2021-01-01|
définition f.résidence égal à Métropole
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 197,74€
définition f.i_ressources_ménage égal à 69945 €
définition f.i_date_courante égal à |2021-01-01|
définition f.i_résidence égal à Métropole
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 197,74€
déclaration champ d'application Test9:
f champ d'application InterfaceAllocationsFamiliales
champ d'application Test9:
définition f.enfants égal à [EnfantEntrée {
définition f.i_enfants égal à [EnfantEntrée {
-- d_identifiant: 0
-- d_date_de_naissance: |2001-07-27|
-- d_rémuneration_mensuelle: 1258€
@ -186,17 +186,17 @@ champ d'application Test9:
-- d_prise_en_charge: ServicesSociauxAllocationVerséeAuxServicesSociaux
-- d_a_déjà_ouvert_droit_aux_allocations_familiales: vrai
}]
définition f.ressources_ménage égal à 75786 €
définition f.date_courante égal à |2020-05-01|
définition f.résidence égal à Guadeloupe
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 0€
définition f.i_ressources_ménage égal à 75786 €
définition f.i_date_courante égal à |2020-05-01|
définition f.i_résidence égal à Guadeloupe
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 0€
déclaration champ d'application Test10:
f champ d'application InterfaceAllocationsFamiliales
champ d'application Test10:
définition f.enfants égal à [EnfantEntrée {
définition f.i_enfants égal à [EnfantEntrée {
-- d_identifiant: 0
-- d_date_de_naissance: |2003-02-22|
-- d_rémuneration_mensuelle: 0€
@ -209,17 +209,17 @@ champ d'application Test10:
-- d_prise_en_charge: GardeAlternéePartageAllocations
-- d_a_déjà_ouvert_droit_aux_allocations_familiales: vrai
}]
définition f.ressources_ménage égal à 30000 €
définition f.date_courante égal à |2020-04-20|
définition f.résidence égal à Métropole
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 99,37€
définition f.i_ressources_ménage égal à 30000 €
définition f.i_date_courante égal à |2020-04-20|
définition f.i_résidence égal à Métropole
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 99,37€
déclaration champ d'application Test11:
f champ d'application InterfaceAllocationsFamiliales
champ d'application Test11:
définition f.enfants égal à [EnfantEntrée {
définition f.i_enfants égal à [EnfantEntrée {
-- d_identifiant: 0
-- d_date_de_naissance: |2003-02-22|
-- d_rémuneration_mensuelle: 0€
@ -239,17 +239,17 @@ champ d'application Test11:
-- d_prise_en_charge: EffectiveEtPermanente
-- d_a_déjà_ouvert_droit_aux_allocations_familiales: vrai
}]
définition f.ressources_ménage égal à 30000 €
définition f.date_courante égal à |2021-12-31|
définition f.résidence égal à Métropole
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 435,55€
définition f.i_ressources_ménage égal à 30000 €
définition f.i_date_courante égal à |2021-12-31|
définition f.i_résidence égal à Métropole
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 435,55€
déclaration champ d'application Test12:
f champ d'application InterfaceAllocationsFamiliales
champ d'application Test12:
définition f.enfants égal à [EnfantEntrée {
définition f.i_enfants égal à [EnfantEntrée {
-- d_identifiant: 0
-- d_date_de_naissance: |2003-02-22|
-- d_rémuneration_mensuelle: 0€
@ -276,27 +276,27 @@ champ d'application Test12:
-- d_prise_en_charge: EffectiveEtPermanente
-- d_a_déjà_ouvert_droit_aux_allocations_familiales: vrai
}]
définition f.ressources_ménage égal à 20000 €
définition f.date_courante égal à |2019-08-26|
définition f.résidence égal à Mayotte
règle f.avait_enfant_à_charge_avant_1er_janvier_2012 rempli
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 315,84€
définition f.i_ressources_ménage égal à 20000 €
définition f.i_date_courante égal à |2019-08-26|
définition f.i_résidence égal à Mayotte
règle f.i_avait_enfant_à_charge_avant_1er_janvier_2012 rempli
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 315,84€
déclaration champ d'application Test13:
f champ d'application InterfaceAllocationsFamiliales
champ d'application Test13:
définition f.enfants égal à [EnfantEntrée {
définition f.i_enfants égal à [EnfantEntrée {
-- d_identifiant: 0
-- d_date_de_naissance: |2008-02-22|
-- d_rémuneration_mensuelle: 0€
-- d_prise_en_charge: EffectiveEtPermanente
-- d_a_déjà_ouvert_droit_aux_allocations_familiales: vrai
}]
définition f.ressources_ménage égal à 65000 €
définition f.date_courante égal à |2019-08-26|
définition f.résidence égal à Mayotte
règle f.personne_charge_effective_permanente_est_parent rempli
assertion f.montant_versé = 34,99€
définition f.i_ressources_ménage égal à 65000 €
définition f.i_date_courante égal à |2019-08-26|
définition f.i_résidence égal à Mayotte
règle f.i_personne_charge_effective_permanente_est_parent rempli
assertion f.i_montant_versé = 34,99€
```

File diff suppressed because one or more lines are too long

View File

@ -22,15 +22,14 @@ let compute_allocations_familiales ~(current_date : Runtime.date)
let result =
AF.interface_allocations_familiales
{
AF.date_courante_in = (fun _ -> current_date);
AF.enfants_in = (fun _ -> children);
AF.enfants_a_charge_in = no_input;
AF.ressources_menage_in = (fun _ -> money_of_units_int income);
AF.residence_in = (fun _ -> residence);
AF.montant_verse_in = no_input;
AF.personne_charge_effective_permanente_est_parent_in = (fun _ -> is_parent);
AF.personne_charge_effective_permanente_remplit_titre_I_in = (fun _ -> fills_title_I);
AF.avait_enfant_a_charge_avant_1er_janvier_2012_in = (fun _ -> had_rights_open_before_2012);
AF.i_date_courante_in = (fun _ -> current_date);
AF.i_enfants_in = (fun _ -> children);
AF.i_ressources_menage_in = (fun _ -> money_of_units_int income);
AF.i_residence_in = (fun _ -> residence);
AF.i_personne_charge_effective_permanente_est_parent_in = (fun _ -> is_parent);
AF.i_personne_charge_effective_permanente_remplit_titre_I_in = (fun _ -> fills_title_I);
AF.i_avait_enfant_a_charge_avant_1er_janvier_2012_in =
(fun _ -> had_rights_open_before_2012);
}
in
money_to_float result.AF.montant_verse_out
money_to_float result.AF.i_montant_verse_out

View File

@ -199,20 +199,20 @@ let _ =
let result =
AF.interface_allocations_familiales
{
AF.personne_charge_effective_permanente_est_parent_in =
AF.i_personne_charge_effective_permanente_est_parent_in =
(fun _ ->
Js.to_bool input##.personneQuiAssumeLaChargeEffectivePermanenteEstParent);
AF.personne_charge_effective_permanente_remplit_titre_I_in =
AF.i_personne_charge_effective_permanente_remplit_titre_I_in =
(fun _ ->
Js.to_bool
input##.personneQuiAssumeLaChargeEffectivePermanenteRemplitConditionsTitreISecuriteSociale);
AF.date_courante_in =
AF.i_date_courante_in =
(fun _ ->
date_of_numbers
input##.currentDate##getUTCFullYear
input##.currentDate##getUTCMonth
input##.currentDate##getUTCDate);
AF.enfants_in =
AF.i_enfants_in =
(fun _ ->
Array.map
(fun (child : enfant_entree Js.t) ->
@ -242,9 +242,8 @@ let _ =
money_of_units_int child##.remunerationMensuelle;
})
(Js.to_array input##.children));
AF.enfants_a_charge_in = no_input;
AF.ressources_menage_in = (fun _ -> money_of_units_int input##.income);
AF.residence_in =
AF.i_ressources_menage_in = (fun _ -> money_of_units_int input##.income);
AF.i_residence_in =
(fun _ ->
match Js.to_string input##.residence with
| "Métropole" -> AF.Metropole ()
@ -257,10 +256,9 @@ let _ =
| "Saint Martin" -> AF.SaintMartin ()
| "Mayotte" -> AF.Mayotte ()
| _ -> failwith "unknown collectivite!");
AF.montant_verse_in = no_input;
AF.avait_enfant_a_charge_avant_1er_janvier_2012_in =
AF.i_avait_enfant_a_charge_avant_1er_janvier_2012_in =
(fun _ -> Js.to_bool input##.avaitEnfantAChargeAvant1erJanvier2012);
}
in
money_to_float result.AF.montant_verse_out)
money_to_float result.AF.i_montant_verse_out)
end)

File diff suppressed because it is too large Load Diff

View File

@ -62,28 +62,16 @@ type enfant = {
a_deja_ouvert_droit_aux_allocations_familiales : bool;
}
type interface_allocations_familiales_out = {
date_courante_out : date;
enfants_out : enfant_entree array;
enfants_a_charge_out : enfant array;
ressources_menage_out : money;
residence_out : collectivite;
montant_verse_out : money;
personne_charge_effective_permanente_est_parent_out : bool;
personne_charge_effective_permanente_remplit_titre_I_out : bool;
avait_enfant_a_charge_avant_1er_janvier_2012_out : bool;
}
type interface_allocations_familiales_out = { i_montant_verse_out : money }
type interface_allocations_familiales_in = {
date_courante_in : unit -> date;
enfants_in : unit -> enfant_entree array;
enfants_a_charge_in : unit -> enfant array;
ressources_menage_in : unit -> money;
residence_in : unit -> collectivite;
montant_verse_in : unit -> money;
personne_charge_effective_permanente_est_parent_in : unit -> bool;
personne_charge_effective_permanente_remplit_titre_I_in : unit -> bool;
avait_enfant_a_charge_avant_1er_janvier_2012_in : unit -> bool;
i_date_courante_in : unit -> date;
i_enfants_in : unit -> enfant_entree array;
i_ressources_menage_in : unit -> money;
i_residence_in : unit -> collectivite;
i_personne_charge_effective_permanente_est_parent_in : unit -> bool;
i_personne_charge_effective_permanente_remplit_titre_I_in : unit -> bool;
i_avait_enfant_a_charge_avant_1er_janvier_2012_in : unit -> bool;
}
val interface_allocations_familiales :

File diff suppressed because it is too large Load Diff

View File

@ -38,15 +38,13 @@ def allocations_familiales(
avait_enfant_a_charge_avant_1er_janvier_2012: bool
):
out = interface_allocations_familiales(InterfaceAllocationsFamilialesIn(
date_courante_in=lambda _: date_of_datetime(date_courante),
enfants_in=lambda _: [enfant.to_allocations_familiales()
for enfant in enfants],
ressources_menage_in=lambda _: money_of_units_int(ressources_menage),
residence_in=lambda _: Collectivite(residence, Unit()),
personne_charge_effective_permanente_est_parent_in=lambda _: personne_charge_effective_permanente_est_parent,
personne_charge_effective_permanente_remplit_titre_I_in=lambda _: personne_charge_effective_permanente_remplit_titre_I,
enfants_a_charge_in=no_input(),
montant_verse_in=no_input(),
avait_enfant_a_charge_avant_1er_janvier_2012_in=lambda _: avait_enfant_a_charge_avant_1er_janvier_2012
i_date_courante_in=lambda _: date_of_datetime(date_courante),
i_enfants_in=lambda _: [enfant.to_allocations_familiales()
for enfant in enfants],
i_ressources_menage_in=lambda _: money_of_units_int(ressources_menage),
i_residence_in=lambda _: Collectivite(residence, Unit()),
i_personne_charge_effective_permanente_est_parent_in=lambda _: personne_charge_effective_permanente_est_parent,
i_personne_charge_effective_permanente_remplit_titre_I_in=lambda _: personne_charge_effective_permanente_remplit_titre_I,
i_avait_enfant_a_charge_avant_1er_janvier_2012_in=lambda _: avait_enfant_a_charge_avant_1er_janvier_2012
))
return money_to_float(out.montant_verse_out)
return money_to_float(out.i_montant_verse_out)