@open3cl/engine 1.0.12 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/features/dpe/domain/models/dpe.model.ts +9 -0
- package/features/dpe/domain/models/installation-chauffage.model.ts +2 -2
- package/features/dpe/infrastructure/froid/frTv.store.js +4 -2
- package/features/engine/domain/apport_et_besoin/apport-et-besoin.service.js +43 -3
- package/features/engine/domain/apport_et_besoin/apport-et-besoin.service.spec.js +103 -2
- package/features/engine/domain/apport_et_besoin/apport_gratuit/apport-gratuit.service.js +18 -2
- package/features/engine/domain/apport_et_besoin/apport_gratuit/apport-gratuit.service.spec.js +13 -2
- package/features/engine/domain/apport_et_besoin/ch/besoin-ch.service.js +150 -0
- package/features/engine/domain/apport_et_besoin/ch/besoin-ch.service.spec.js +145 -0
- package/features/engine/domain/apport_et_besoin/ch/perte-ch-recup.service.js +168 -0
- package/features/engine/domain/apport_et_besoin/ch/perte-ch-recup.service.spec.js +313 -0
- package/features/engine/domain/apport_et_besoin/ecs/perte-ecs-recup.service.js +12 -8
- package/features/engine/domain/apport_et_besoin/ecs/perte-ecs-recup.service.spec.js +28 -13
- package/features/engine/domain/ecs/installation-ecs.service.js +5 -5
- package/features/engine/domain/engine.service.js +13 -2
- package/package.json +1 -1
|
@@ -38,15 +38,15 @@ describe('Calcul des pertes de distribution et stockage récupérées', () => {
|
|
|
38
38
|
{
|
|
39
39
|
label: 'Installation ECS en mode conventionnel',
|
|
40
40
|
depensier: false,
|
|
41
|
-
expected: 0.
|
|
41
|
+
expected: 0.192
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
label: 'Installation ECS en mode dépensier',
|
|
45
45
|
depensier: true,
|
|
46
|
-
expected: 0.
|
|
46
|
+
expected: 0.725
|
|
47
47
|
}
|
|
48
48
|
])('Calcul des pertes de distribution récupérées pour $label', ({ depensier, expected }) => {
|
|
49
|
-
vi.spyOn(tvStore, 'getData').mockReturnValue(1.5);
|
|
49
|
+
vi.spyOn(tvStore, 'getData').mockReturnValue(depensier ? 1.5 : 0.8);
|
|
50
50
|
|
|
51
51
|
/** @type {Contexte} */
|
|
52
52
|
const ctx = {
|
|
@@ -75,7 +75,7 @@ describe('Calcul des pertes de distribution et stockage récupérées', () => {
|
|
|
75
75
|
}
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
expect(service.pertesDistributionEcsRecup(ctx, logement, depensier)).toBeCloseTo(expected,
|
|
78
|
+
expect(service.pertesDistributionEcsRecup(ctx, logement, depensier)).toBeCloseTo(expected, 3);
|
|
79
79
|
for (const mois of mois_liste) {
|
|
80
80
|
expect(tvStore.getData).toHaveBeenCalledWith(
|
|
81
81
|
depensier ? 'nref21' : 'nref19',
|
|
@@ -87,8 +87,19 @@ describe('Calcul des pertes de distribution et stockage récupérées', () => {
|
|
|
87
87
|
}
|
|
88
88
|
});
|
|
89
89
|
|
|
90
|
-
test(
|
|
91
|
-
|
|
90
|
+
test.each([
|
|
91
|
+
{
|
|
92
|
+
label: 'Installation ECS en mode conventionnel',
|
|
93
|
+
depensier: false,
|
|
94
|
+
expected: 63.209
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
label: 'Installation ECS en mode dépensier',
|
|
98
|
+
depensier: true,
|
|
99
|
+
expected: 118.516
|
|
100
|
+
}
|
|
101
|
+
])('Calcul des pertes de stockage récupérées pour $label', ({ depensier, expected }) => {
|
|
102
|
+
vi.spyOn(tvStore, 'getData').mockReturnValue(depensier ? 1.5 : 0.8);
|
|
92
103
|
|
|
93
104
|
/** @type {Contexte} */
|
|
94
105
|
const ctx = {
|
|
@@ -101,15 +112,21 @@ describe('Calcul des pertes de distribution et stockage récupérées', () => {
|
|
|
101
112
|
const logement = {
|
|
102
113
|
installation_ecs_collection: {
|
|
103
114
|
installation_ecs: [
|
|
104
|
-
{ donnee_utilisateur: { QgwRecuperable:
|
|
115
|
+
{ donnee_utilisateur: { QgwRecuperable: 120012 } },
|
|
105
116
|
{ donnee_utilisateur: { QgwRecuperable: 150 } }
|
|
106
117
|
]
|
|
107
118
|
}
|
|
108
119
|
};
|
|
109
120
|
|
|
110
|
-
expect(service.pertesStockageEcsRecup(ctx, logement)).toBeCloseTo(
|
|
121
|
+
expect(service.pertesStockageEcsRecup(ctx, logement, depensier)).toBeCloseTo(expected, 3);
|
|
111
122
|
for (const mois of mois_liste) {
|
|
112
|
-
expect(tvStore.getData).toHaveBeenCalledWith(
|
|
123
|
+
expect(tvStore.getData).toHaveBeenCalledWith(
|
|
124
|
+
depensier ? 'nref21' : 'nref19',
|
|
125
|
+
'400-800m',
|
|
126
|
+
'h1a',
|
|
127
|
+
mois,
|
|
128
|
+
1
|
|
129
|
+
);
|
|
113
130
|
}
|
|
114
131
|
});
|
|
115
132
|
|
|
@@ -142,6 +159,7 @@ describe('Calcul des pertes de distribution et stockage récupérées', () => {
|
|
|
142
159
|
);
|
|
143
160
|
}
|
|
144
161
|
);
|
|
162
|
+
|
|
145
163
|
test.each(corpus)(
|
|
146
164
|
'vérification des pertes de distribution ecs recup depensier des installations ECS pour dpe %s',
|
|
147
165
|
(ademeId) => {
|
|
@@ -170,6 +188,7 @@ describe('Calcul des pertes de distribution et stockage récupérées', () => {
|
|
|
170
188
|
);
|
|
171
189
|
}
|
|
172
190
|
);
|
|
191
|
+
|
|
173
192
|
test.each(corpus)(
|
|
174
193
|
'vérification des pertes de stockage ecs recup des installations ECS pour dpe %s',
|
|
175
194
|
(ademeId) => {
|
|
@@ -190,10 +209,6 @@ describe('Calcul des pertes de distribution et stockage récupérées', () => {
|
|
|
190
209
|
expect(pertesStockage.pertes_stockage_ecs_recup).toBeCloseTo(
|
|
191
210
|
dpeRequest.logement.sortie.apport_et_besoin.pertes_stockage_ecs_recup
|
|
192
211
|
),
|
|
193
|
-
() =>
|
|
194
|
-
expect(pertesStockage.pertes_stockage_ecs_recup).toBeCloseTo(
|
|
195
|
-
dpeRequest.logement.sortie.apport_et_besoin.pertes_stockage_ecs_recup * 1000
|
|
196
|
-
),
|
|
197
212
|
() =>
|
|
198
213
|
expect(pertesStockage.pertes_stockage_ecs_recup * 1000).toBeCloseTo(
|
|
199
214
|
dpeRequest.logement.sortie.apport_et_besoin.pertes_stockage_ecs_recup
|
|
@@ -58,8 +58,8 @@ export class InstallationEcsService {
|
|
|
58
58
|
*/
|
|
59
59
|
this.pertesDistributionStockageEcsInstallation(
|
|
60
60
|
installationEcs,
|
|
61
|
-
besoinEcsInstallation,
|
|
62
|
-
besoinEcsDepensierInstallation
|
|
61
|
+
besoinEcsInstallation * 1000,
|
|
62
|
+
besoinEcsDepensierInstallation * 1000
|
|
63
63
|
);
|
|
64
64
|
});
|
|
65
65
|
}
|
|
@@ -73,7 +73,7 @@ export class InstallationEcsService {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
|
-
* Return le besoin rationalisé de l'installation par rapport au besoin
|
|
76
|
+
* Return le besoin rationalisé de l'installation par rapport au besoin global du logement
|
|
77
77
|
*
|
|
78
78
|
* @param ctx {Contexte}
|
|
79
79
|
* @param installationEcs {InstallationEcs}
|
|
@@ -109,8 +109,8 @@ export class InstallationEcsService {
|
|
|
109
109
|
* Qgw: pertes brutes annuelles de stockage (Wh)
|
|
110
110
|
*
|
|
111
111
|
* @param installationEcs {InstallationEcs}
|
|
112
|
-
* @param besoinEcsInstallation {number}
|
|
113
|
-
* @param besoinEcsDepensierInstallation {number}
|
|
112
|
+
* @param besoinEcsInstallation {number} // en Wh
|
|
113
|
+
* @param besoinEcsDepensierInstallation {number} // en Wh
|
|
114
114
|
*/
|
|
115
115
|
pertesDistributionStockageEcsInstallation(
|
|
116
116
|
installationEcs,
|
|
@@ -58,6 +58,14 @@ export class EngineService {
|
|
|
58
58
|
confort_ete: undefined,
|
|
59
59
|
qualite_isolation: undefined
|
|
60
60
|
};
|
|
61
|
+
proceededDpe.logement.donnees_de_calcul = {
|
|
62
|
+
apportsInterne: [],
|
|
63
|
+
apportsInterneDepensier: [],
|
|
64
|
+
apportsInterneCh: [],
|
|
65
|
+
apportsSolaire: [],
|
|
66
|
+
besoinChauffageHP: [],
|
|
67
|
+
besoinChauffageDepensierHP: []
|
|
68
|
+
};
|
|
61
69
|
const ctx = this.#contextBuilder.fromDpe(proceededDpe);
|
|
62
70
|
|
|
63
71
|
// Calcul de l'inertie
|
|
@@ -101,6 +109,8 @@ export class EngineService {
|
|
|
101
109
|
|
|
102
110
|
// Calcul du DPE dans le collectif
|
|
103
111
|
|
|
112
|
+
delete proceededDpe.logement.donnees_de_calcul;
|
|
113
|
+
|
|
104
114
|
return proceededDpe;
|
|
105
115
|
}
|
|
106
116
|
|
|
@@ -142,9 +152,10 @@ export class EngineService {
|
|
|
142
152
|
m.emetteur_chauffage_collection.emetteur_chauffage?.map((n) => {
|
|
143
153
|
delete n.donnee_intermediaire;
|
|
144
154
|
});
|
|
145
|
-
|
|
155
|
+
// @todo calculer les données intermédiaires (notamment pn et qp0)
|
|
156
|
+
/*m.generateur_chauffage_collection.generateur_chauffage?.map((n) => {
|
|
146
157
|
delete n.donnee_intermediaire;
|
|
147
|
-
})
|
|
158
|
+
});*/
|
|
148
159
|
delete m.donnee_intermediaire;
|
|
149
160
|
});
|
|
150
161
|
delete dpe.logement.production_elec_enr?.donnee_intermediaire;
|