@open3cl/engine 1.8.2 → 1.8.3
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/9_besoin_ch.js +7 -0
- package/9_besoin_ch.spec.js +21 -0
- package/engine.js +1 -1
- package/package.json +1 -1
package/9_besoin_ch.js
CHANGED
|
@@ -171,6 +171,13 @@ export default function calc_besoin_ch(
|
|
|
171
171
|
besoin_ch_depensier += besoin_ch_mois_dep[mois] / 1000;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
+
/**
|
|
175
|
+
* Fraction des besoins de chauffage couverts par les apports gratuits sur l'année :
|
|
176
|
+
* moyenne des Fj mensuels pondérée par les déperditions mensuelles (GV × DHj).
|
|
177
|
+
* C'est une fraction sans unité comprise entre 0 et 1, elle n'est PAS arrondie à 1.
|
|
178
|
+
* Certains logiciels publient 1 dans le XML ADEME : ce n'est pas une valeur calculée
|
|
179
|
+
* et elle ne doit pas servir de référence (cf. issue #51).
|
|
180
|
+
*/
|
|
174
181
|
fraction_apport_gratuit_ch /= sumDh19;
|
|
175
182
|
fraction_apport_gratuit_depensier_ch /= sumDh21;
|
|
176
183
|
|
package/9_besoin_ch.spec.js
CHANGED
|
@@ -130,6 +130,27 @@ describe('calc_besoin_ch - agrégation mensuelle du besoin de chauffage', () =>
|
|
|
130
130
|
expect(ret.fraction_apport_gratuit_depensier_ch).toBeCloseTo(0.05808492254600494, 9);
|
|
131
131
|
});
|
|
132
132
|
|
|
133
|
+
/**
|
|
134
|
+
* La fraction des apports gratuits est une moyenne pondérée des Fj :
|
|
135
|
+
* elle reste dans [0, 1] et n'est jamais arrondie à 1 (cf. issue #51).
|
|
136
|
+
*/
|
|
137
|
+
test("la fraction des apports gratuits n'est pas arrondie à 1 et reste dans [0, 1]", () => {
|
|
138
|
+
const ret = appelSansRecup();
|
|
139
|
+
const Fj = calc_Fj(100, 2000, 5000, 1000, 'moyenne');
|
|
140
|
+
const FjDep = calc_Fj(100, 2000, 5000, 1200, 'moyenne');
|
|
141
|
+
|
|
142
|
+
// sur un seul mois, la moyenne pondérée vaut exactement Fj
|
|
143
|
+
expect(ret.fraction_apport_gratuit_ch).toBeCloseTo(Fj, 12);
|
|
144
|
+
expect(ret.fraction_apport_gratuit_depensier_ch).toBeCloseTo(FjDep, 12);
|
|
145
|
+
for (const fraction of [
|
|
146
|
+
ret.fraction_apport_gratuit_ch,
|
|
147
|
+
ret.fraction_apport_gratuit_depensier_ch
|
|
148
|
+
]) {
|
|
149
|
+
expect(fraction).toBeGreaterThan(0);
|
|
150
|
+
expect(fraction).toBeLessThan(1);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
|
|
133
154
|
test('sans récupération, toutes les pertes récupérées retournées sont nulles', () => {
|
|
134
155
|
const ret = appelSansRecup();
|
|
135
156
|
expect(ret.pertes_distribution_ecs_recup).toBe(0);
|
package/engine.js
CHANGED
|
@@ -33,7 +33,7 @@ import getFicheTechnique from './ficheTechnique.js';
|
|
|
33
33
|
import { ProductionENR } from './16.2_production_enr.js';
|
|
34
34
|
import DpeSanitizerService from './dpe-sanitizer.service.js';
|
|
35
35
|
|
|
36
|
-
const LIB_VERSION = '1.8.
|
|
36
|
+
const LIB_VERSION = '1.8.3';
|
|
37
37
|
|
|
38
38
|
const dpeSanitizerService = new DpeSanitizerService();
|
|
39
39
|
|