remous_rect_rk4_penteforte.spec.ts 24.8 KB
Newer Older
1
import { MethodeResolution } from "../../src/remous/methode-resolution";
2
3
4
5
import { CourbeRemous } from "../../src/remous/remous";
import { CourbeRemousParams } from "../../src/remous/remous_params";
import { cSnRectang } from "../../src/section/section_rectang";
import { ParamsSectionRectang } from "../../src/section/section_rectang_params";
6
import { SessionSettings } from "../../src/session_settings";
7
8
import { cLog } from "../../src/util/log";
import { Message, MessageCode } from "../../src/util/message";
9
import { precDist } from "../test_config";
10
import { compareExtraResult, compareLog, extraResultLength } from "../test_func";
11

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
   cas 1 :
   Certaines valeurs de ligne d'eau torrentielle étaient auparavant remplacées par une valeur fluviale
   pour la représentation graphique du ressaut (mais fausse car torrentielle).
   Idem pour la réciproque fluvial/torrentiel.
   Le code ne faisant plus ça, les valeurs de validation ont été remplacée par les bonnes.
 */

/*
  cas 2 :
  Le code de modification des lignes fluviale et torrentielle a été modifié, on enlève un point de plus
  ligne d'eau complète : if (iSens * (rXCC - rX) < 0) remplacé par if (iSens * (rXCC - rX) <= 0)
  lign d'eau partielle : if (iSens * (rXCN - xRst) > 0)  remplacé par if (iSens * (rXCN - xRst) >= 0)
  Les données de validation ont été modifiées en conséquence
*/

28
29
describe("Class Remous / section rectangulaire :", () => {
    describe("méthode Runge-Kutta ordre 4 :", () => {
30
        // désactivé suite au changement de format de résultat
31
        it("forte pente, ressaut avant l'amont", () => {
32
            const prms = new ParamsSectionRectang(undefined, // tirant d'eau
33
34
35
36
                2.5, // largeur de fond
                40, //  Ks=Strickler
                2, // Q=Débit
                0.05, // If=pente du fond
37
                1, // YB=hauteur de berge
38
            );
39
            SessionSettings.precision = precDist;
40

41
            const sect = new cSnRectang(prms);
42

43
            const prem = new CourbeRemousParams(105.15, 106, 105, 100,
44
45
                100,  // Long= Longueur du bief
                5,  // Dx=Pas d'espace
46
47
            );

48
            const rem = new CourbeRemous(sect, prem, MethodeResolution.RungeKutta4);
49

50
            const res = rem.calculRemous(undefined);
51
52
53

            // données de validation : version PHP (Oct 2017) méthode RungeKutta4

54
            const f: any = {
Mathias Chouet's avatar
Mathias Chouet committed
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
                100.000: 6,
                95.000: 5.75,
                90.000: 5.5,
                85.000: 5.25,
                80.000: 5,
                75.000: 4.75,
                70.000: 4.5,
                65.000: 4.25,
                60.000: 4,
                55.000: 3.749,
                50.000: 3.499,
                45.000: 3.249,
                40.000: 2.999,
                35.000: 2.748,
                30.000: 2.498,
                25.000: 2.247,
                20.000: 1.996,
                15.000: 1.744,
                10.000: 1.491,
                5.000: 1.237,
                0.000: 0.977
            };
77
78
79
80
            // màj pour jalhyd#146 : ajout de la cote de fond aux valeurs attendues
            for (const fk of Object.keys(f)) {
                f[fk] = f[fk] + rem.getCoteFond(Number(fk));
            }
81
            // compareObject("Yfluvial", res.getValue("flu"), f, 0.01);
82
            compareExtraResult("Yfluvial", res, "flu", f, 0.01);
83

84
            const t = {};
85
            // compareObject("Ytorrentiel", res.getValue("tor"), t, 0.03);
86
            compareExtraResult("Ytorrentiel", res, "tor", t, 0.03);
87

Mathias Chouet's avatar
Mathias Chouet committed
88
            // tslint:disable-next-line:max-line-length
89
            // const x = [0.000, 5.000, 10.000, 15.000, 20.000, 25.000, 30.000, 35.000, 40.000, 45.000, 50.000, 55.000, 60.000, 65.000, 70.000, 75.000, 80.000, 85.000, 90.000, 95.000, 100.000];
90
            // compareArray("abscisses", res.getValue("trX"), x);
91

92
            const expLog = new cLog();
93

94
            let m = new Message(MessageCode.INFO_REMOUS_H_CRITIQUE);
95
            m.extraVar.Yc = 0.403;
96
97
            expLog.add(m);

98
            m = new Message(MessageCode.INFO_REMOUS_H_NORMALE);
99
            m.extraVar.Yn = 0.253;
100
101
            expLog.add(m);

102
103
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_FLUVIAL));
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_TORRENTIEL));
104

105
            m = new Message(MessageCode.INFO_REMOUS_RESSAUT_DEHORS);
106
107
            m.extraVar.sens = "amont";
            m.extraVar.x = 0;
108
109
            expLog.add(m);

110
            compareLog(res.globalLog, expLog);
111
112
        });

113
        // désactivé suite au changement de format de résultat
114
        it("forte pente, ressaut après l'aval", () => {
115
            // TODO algo à reprendre
116
            const prms = new ParamsSectionRectang(undefined, // tirant d'eau
117
118
119
120
                2.5, // largeur de fond
                40, //  Ks=Strickler
                2, // Q=Débit
                0.05, // If=pente du fond
121
                1, // YB=hauteur de berge
122
            );
123
            SessionSettings.precision = precDist;
124

125
            const sect = new cSnRectang(prms);
126

127
            const prem = new CourbeRemousParams(105.15, 100.45, 105, 100,
128
129
                100,  // Long= Longueur du bief
                5,  // Dx=Pas d'espace
130
131
            );

132
            const rem = new CourbeRemous(sect, prem, MethodeResolution.RungeKutta4);
133

134
            const res = rem.calculRemous(undefined);
135
136
137

            // données de validation : version PHP (Oct 2017) méthode RungeKutta4

138
            const f = {};
139
            // compareObject("Yfluvial", res.getValue("flu"), f, 0.03);
140
            compareExtraResult("Yfluvial", res, "flu", f, 0.03);
141

Mathias Chouet's avatar
Mathias Chouet committed
142
            // tslint:disable-next-line:max-line-length
143
            // let t = { 0.000: 0.15, 5.000: 0.198, 10.000: 0.228, 15.000: 0.243, 20.000: 0.249, 25.000: 0.251, 30.000: 0.252, 35.000: 0.253, 40.000: 0.253, 45.000: 0.253, 50.000: 0.253, 55.000: 0.253, 60.000: 0.253, 65.000: 0.253, 70.000: 0.253, 75.000: 0.253, 80.000: 0.253, 85.000: 0.253, 90.000: 0.253, 95.000: 0.253, 100.000: 0.45 };
144
            const t: any = {
Mathias Chouet's avatar
Mathias Chouet committed
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
                0.000: 0.15,
                5.000: 0.198,
                10.000: 0.228,
                15.000: 0.243,
                20.000: 0.249,
                25.000: 0.251,
                30.000: 0.252,
                35.000: 0.253,
                40.000: 0.253,
                45.000: 0.253,
                50.000: 0.253,
                55.000: 0.253,
                60.000: 0.253,
                65.000: 0.253,
                70.000: 0.253,
                75.000: 0.253,
                80.000: 0.253,
                85.000: 0.253,
                90.000: 0.253,
                95.000: 0.253,
                100.000: 0.253
            }; // dernière valeur remplacée pour la raison 1 en tête de fichier
167
168
169
170
            // màj pour jalhyd#146 : ajout de la cote de fond aux valeurs attendues
            for (const tk of Object.keys(t)) {
                t[tk] = t[tk] + rem.getCoteFond(Number(tk));
            }
171
            // compareObject("Ytorrentiel", res.getValue("tor"), t, 0.03);
172
            compareExtraResult("Ytorrentiel", res, "tor", t, 0.03);
173

Mathias Chouet's avatar
Mathias Chouet committed
174
            // tslint:disable-next-line:max-line-length
175
            // const x = [0.000, 5.000, 10.000, 15.000, 20.000, 25.000, 30.000, 35.000, 40.000, 45.000, 50.000, 55.000, 60.000, 65.000, 70.000, 75.000, 80.000, 85.000, 90.000, 95.000, 100.000];
176
            // compareArray("abscisses", res.getValue("trX"), x);
177

178
            const expLog = new cLog();
179

180
            let m = new Message(MessageCode.INFO_REMOUS_H_CRITIQUE);
181
            m.extraVar.Yc = 0.403;
182
183
            expLog.add(m);

184
            m = new Message(MessageCode.INFO_REMOUS_H_NORMALE);
185
            m.extraVar.Yn = 0.253;
186
187
            expLog.add(m);

188
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_FLUVIAL));
189

Mathias Chouet's avatar
Mathias Chouet committed
190
            m = new Message(MessageCode.WARNING_REMOUS_ARRET_CRITIQUE);
191
            m.extraVar.x = 95;
192
193
            expLog.add(m);

194
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_TORRENTIEL));
195

196
            m = new Message(MessageCode.INFO_REMOUS_RESSAUT_DEHORS);
197
198
            m.extraVar.sens = "aval";
            m.extraVar.x = 100;
199
200
            expLog.add(m);

201
            compareLog(res.globalLog, expLog);
202
203
        });

Mathias Chouet's avatar
Mathias Chouet committed
204
205
        xit("forte pente, ressaut (1 point) à l'intérieur du bief", () => {
            // désactivé car échoue depuis les modifs apportées depuis la version PHP (calcul du ressaut hydraulique)
206
            const prms = new ParamsSectionRectang(undefined, // tirant d'eau
207
208
209
210
                2.5, // largeur de fond
                40, //  Ks=Strickler
                2, // Q=Débit
                0.05, // If=pente du fond
211
                1, // YB=hauteur de berge
212
            );
213
            SessionSettings.precision = precDist;
214

215
            const sect = new cSnRectang(prms);
216

217
            const prem = new CourbeRemousParams(105.15, 101, 105, 100,
218
219
                100,  // Long= Longueur du bief
                5,  // Dx=Pas d'espace
220
221
            );

222
            const rem = new CourbeRemous(sect, prem, MethodeResolution.RungeKutta4);
223

224
            const res = rem.calculRemous(undefined);
225
226
227

            // données de validation : version PHP (Oct 2017) méthode RungeKutta4

228
            // let f = { 100.000: 1, 95.000: 0.728, 90.000: 0.521 };
229
            const f = { 100.000: 1, 95.000: 0.728 }; // dernière valeur supprimée pour la raison 2 en tête de fichier
230
            // compareObject("Yfluvial", res.getValue("flu"), f, 0.03);
231
            compareExtraResult("Yfluvial", res, "flu", f, 0.03);
232

Mathias Chouet's avatar
Mathias Chouet committed
233
            // tslint:disable-next-line:max-line-length
234
            // let t = { 0.000: 0.15, 5.000: 0.198, 10.000: 0.228, 15.000: 0.243, 20.000: 0.249, 25.000: 0.251, 30.000: 0.252, 35.000: 0.253, 40.000: 0.253, 45.000: 0.253, 50.000: 0.253, 55.000: 0.253, 60.000: 0.253, 65.000: 0.253, 70.000: 0.253, 75.000: 0.253, 80.000: 0.253, 85.000: 0.253, 90.000: 0.521 };
235
            const t: any = {
Mathias Chouet's avatar
Mathias Chouet committed
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
                0.000: 0.15,
                5.000: 0.198,
                10.000: 0.228,
                15.000: 0.243,
                20.000: 0.249,
                25.000: 0.251,
                30.000: 0.252,
                35.000: 0.253,
                40.000: 0.253,
                45.000: 0.253,
                50.000: 0.253,
                55.000: 0.253,
                60.000: 0.253,
                65.000: 0.253,
                70.000: 0.253,
                75.000: 0.253,
                80.000: 0.253,
                85.000: 0.253,
                90.000: 0.25
            }; // dernière valeur remplacée pour la raison 1 en tête de fichier
256
257
258
259
            // màj pour jalhyd#146 : ajout de la cote de fond aux valeurs attendues
            for (const tk of Object.keys(t)) {
                t[tk] = t[tk] + rem.getCoteFond(Number(tk));
            }
260
            // compareObject("Ytorrentiel", res.getValue("tor"), t, 0.03);
261
            compareExtraResult("Ytorrentiel", res, "tor", t, 0.03);
262

Mathias Chouet's avatar
Mathias Chouet committed
263
            // tslint:disable-next-line:max-line-length
264
            // const x = [0.000, 5.000, 10.000, 15.000, 20.000, 25.000, 30.000, 35.000, 40.000, 45.000, 50.000, 55.000, 60.000, 65.000, 70.000, 75.000, 80.000, 85.000, 90.000, 95.000, 100.000];
265
            // compareArray("abscisses", res.getValue("trX"), x);
266

267
            const expLog = new cLog();
268

269
            let m = new Message(MessageCode.INFO_REMOUS_H_CRITIQUE);
270
            m.extraVar.Yc = 0.403;
271
272
            expLog.add(m);

273
            m = new Message(MessageCode.INFO_REMOUS_H_NORMALE);
274
            m.extraVar.Yn = 0.253;
275
276
            expLog.add(m);

277
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_FLUVIAL));
278

Mathias Chouet's avatar
Mathias Chouet committed
279
            m = new Message(MessageCode.WARNING_REMOUS_ARRET_CRITIQUE);
280
            m.extraVar.x = 85;
281
282
            expLog.add(m);

283
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_TORRENTIEL));
284

285
            m = new Message(MessageCode.INFO_REMOUS_RESSAUT_HYDRO);
286
287
            m.extraVar.xmin = 90;
            m.extraVar.xmax = 90;
288
289
            expLog.add(m);

290
            compareLog(res.globalLog, expLog);
291
292
        });

Mathias Chouet's avatar
Mathias Chouet committed
293
294
        xit("forte pente, ressaut (plusieurs points) à l'intérieur du bief", () => {
            // désactivé car échoue depuis les modifs apportées depuis la version PHP (calcul du ressaut hydraulique)
295
            const prms = new ParamsSectionRectang(undefined, // tirant d'eau
296
297
298
299
                2.5, // largeur de fond
                40, //  Ks=Strickler
                2, // Q=Débit
                0.05, // If=pente du fond
300
                1, // YB=hauteur de berge
301
            );
302
            SessionSettings.precision = precDist;
303

304
            const sect = new cSnRectang(prms);
305

306
            const prem = new CourbeRemousParams(100.425, 101, 100.275, 100,
307
308
                5.5,  // Long= Longueur du bief
                0.25,  // Dx=Pas d'espace
309
310
            );

311
            const rem = new CourbeRemous(sect, prem, MethodeResolution.RungeKutta4);
312

313
            const res = rem.calculRemous(undefined);
314
315
316

            // données de validation : version PHP (Oct 2017) méthode RungeKutta4

Mathias Chouet's avatar
Mathias Chouet committed
317
            // tslint:disable-next-line:max-line-length
318
            // let f = { 5.500: 1, 5.250: 0.987, 5.000: 0.974, 4.750: 0.96, 4.500: 0.947, 4.250: 0.934, 4.000: 0.921, 3.750: 0.907, 3.500: 0.894, 3.250: 0.88, 3.000: 0.867, 2.750: 0.853, 2.500: 0.84, 2.250: 0.826, 2.000: 0.812, 1.750: 0.798, 1.500: 0.785, 1.250: 0.771, 1.000: 0.756, 0.750: 0.742, 0.500: 0.728, 0.250: 0.713, 0.000: 0.15 };
319
            const f: any = {
Mathias Chouet's avatar
Mathias Chouet committed
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
                5.500: 1,
                5.250: 0.987,
                5.000: 0.974,
                4.750: 0.96,
                4.500: 0.947,
                4.250: 0.934,
                4.000: 0.921,
                3.750: 0.907,
                3.500: 0.894,
                3.250: 0.88,
                3.000: 0.867,
                2.750: 0.853,
                2.500: 0.84,
                2.250: 0.826,
                2.000: 0.812,
                1.750: 0.798,
                1.500: 0.785,
                1.250: 0.771,
                1.000: 0.756,
                0.750: 0.742,
                0.500: 0.728,
                0.250: 0.713,
                0.000: 0.699
            }; // dernière valeur remplacée pour la raison 1 en tête de fichier
344
            // compareObject("Yfluvial", res.getValue("flu"), f, 0.03);
345
346
347
348
            // màj pour jalhyd#146 : ajout de la cote de fond aux valeurs attendues
            for (const fk of Object.keys(f)) {
                f[fk] = f[fk] + rem.getCoteFond(Number(fk));
            }
349
            compareExtraResult("Yfluvial", res, "flu", f, 0.03);
350

351
            const t: any = {
Mathias Chouet's avatar
Mathias Chouet committed
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
                0.000: 0.15,
                0.250: 0.153,
                0.500: 0.156,
                0.750: 0.158,
                1.000: 0.161,
                1.250: 0.164,
                1.500: 0.166,
                1.750: 0.169,
                2.000: 0.171,
                2.250: 0.174,
                2.500: 0.176,
                2.750: 0.179,
                3.000: 0.181,
                3.250: 0.183,
                3.500: 0.186,
                3.750: 0.907
            };
369
370
371
372
            // màj pour jalhyd#146 : ajout de la cote de fond aux valeurs attendues
            for (const tk of Object.keys(t)) {
                t[tk] = t[tk] + rem.getCoteFond(Number(tk));
            }
373
            // compareObject("Ytorrentiel", res.getValue("tor"), t, 0.03);
374
            compareExtraResult("Ytorrentiel", res, "tor", t, 0.03);
375

Mathias Chouet's avatar
Mathias Chouet committed
376
            // tslint:disable-next-line:max-line-length
377
            // const x = [0.000, 0.250, 0.500, 0.750, 1.000, 1.250, 1.500, 1.750, 2.000, 2.250, 2.500, 2.750, 3.000, 3.250, 3.500, 3.750, 4.000, 4.250, 4.500, 4.750, 5.000, 5.250, 5.500];
378
            // compareArray("abscisses", res.getValue("trX"), x);
379

380
            const expLog = new cLog();
381

382
            let m = new Message(MessageCode.INFO_REMOUS_H_CRITIQUE);
383
            m.extraVar.Yc = 0.403;
384
385
            expLog.add(m);

386
            m = new Message(MessageCode.INFO_REMOUS_H_NORMALE);
387
            m.extraVar.Yn = 0.253;
388
389
            expLog.add(m);

390
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_FLUVIAL));
391

392
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_TORRENTIEL));
393

394
            m = new Message(MessageCode.INFO_REMOUS_RESSAUT_HYDRO);
395
396
            m.extraVar.xmin = 0;
            m.extraVar.xmax = 3.75;
397
398
            expLog.add(m);

399
            compareLog(res.globalLog, expLog);
400
401
        });

402
        // désactivé suite au changement de format de résultat
403
        it("forte pente, pas de ressaut, Yaval < Yc, Yamont < Yn", () => {
404
            const prms = new ParamsSectionRectang(undefined, // tirant d'eau
405
406
407
408
                2.5, // largeur de fond
                40, //  Ks=Strickler
                2, // Q=Débit
                0.05, // If=pente du fond
409
                1, // YB=hauteur de berge
410
            );
411
            SessionSettings.precision = precDist;
412

413
            const sect = new cSnRectang(prms);
414

415
            const prem = new CourbeRemousParams(105.1, 100.3, 105, 100,
416
417
                100,  // Long= Longueur du bief
                5,  // Dx=Pas d'espace
418
419
            );

420
            const rem = new CourbeRemous(sect, prem, MethodeResolution.RungeKutta4);
421

422
            const res = rem.calculRemous(undefined);
423
424
425

            // données de validation : version PHP (Oct 2017) méthode RungeKutta4

426
            expect(extraResultLength(res, "flu") === 0)
Mathias Chouet's avatar
Mathias Chouet committed
427
428
                .toBeTruthy("la ligne d'eau fluviale ne devrait comporter aucune valeur");

429
            const t: any = {
Mathias Chouet's avatar
Mathias Chouet committed
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
                0.000: 0.1,
                5.000: 0.162,
                10.000: 0.206,
                15.000: 0.232,
                20.000: 0.244,
                25.000: 0.25,
                30.000: 0.252,
                35.000: 0.252,
                40.000: 0.253,
                45.000: 0.253,
                50.000: 0.253,
                55.000: 0.253,
                60.000: 0.253,
                65.000: 0.253,
                70.000: 0.253,
                75.000: 0.253,
                80.000: 0.253,
                85.000: 0.253,
                90.000: 0.253,
                95.000: 0.253,
                100.000: 0.253
            };
452
453
454
455
            // màj pour jalhyd#146 : ajout de la cote de fond aux valeurs attendues
            for (const tk of Object.keys(t)) {
                t[tk] = t[tk] + rem.getCoteFond(Number(tk));
            }
456
            // compareObject("Ytorrentiel", res.getValue("tor"), t, 0.01);
457
            compareExtraResult("Ytorrentiel", res, "tor", t, 0.01);
458

Mathias Chouet's avatar
Mathias Chouet committed
459
            // tslint:disable-next-line:max-line-length
460
            // const x = [0.000, 5.000, 10.000, 15.000, 20.000, 25.000, 30.000, 35.000, 40.000, 45.000, 50.000, 55.000, 60.000, 65.000, 70.000, 75.000, 80.000, 85.000, 90.000, 95.000, 100.000];
461
            // compareArray("abscisses", res.getValue("trX"), x);
462

463
            const expLog = new cLog();
464

465
            let m = new Message(MessageCode.INFO_REMOUS_H_CRITIQUE);
466
            m.extraVar.Yc = 0.403;
467
468
            expLog.add(m);

469
            m = new Message(MessageCode.INFO_REMOUS_H_NORMALE);
470
            m.extraVar.Yn = 0.253;
471
472
            expLog.add(m);

Mathias Chouet's avatar
Mathias Chouet committed
473
            expLog.add(new Message(MessageCode.WARNING_REMOUS_PAS_CALCUL_DEPUIS_AVAL));
474

475
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_TORRENTIEL));
476

477
            compareLog(res.globalLog, expLog);
478
479
        });

480
481
        // désactivé suite au changement de format de résultat
        xit("forte pente, pas de ressaut, Yaval < Yc, Yn < Yamont < Yc", () => {
482
            const prms = new ParamsSectionRectang(undefined, // tirant d'eau
483
484
485
486
                2.5, // largeur de fond
                40, //  Ks=Strickler
                2, // Q=Débit
                0.05, // If=pente du fond
487
                1, // YB=hauteur de berge
488
            );
489
            SessionSettings.precision = precDist;
490

491
            const sect = new cSnRectang(prms);
492

493
            const prem = new CourbeRemousParams(100.85, 100.3, 100.5, 100,
494
495
                10,  // Long= Longueur du bief
                0.1,  // Dx=Pas d'espace
496
497
            );

498
            const rem = new CourbeRemous(sect, prem, MethodeResolution.RungeKutta4);
499

500
            const res = rem.calculRemous(undefined);
501
502
503

            // données de validation : version PHP (Oct 2017) méthode RungeKutta4

504
            expect(extraResultLength(res, "flu") === 0)
Mathias Chouet's avatar
Mathias Chouet committed
505
506
                .toBeTruthy("la ligne d'eau fluviale ne devrait comporter aucune valeur");

507
            const t: any = {
Mathias Chouet's avatar
Mathias Chouet committed
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
                0.000: 0.35,
                0.100: 0.344,
                0.200: 0.34,
                0.300: 0.335,
                0.400: 0.332,
                0.500: 0.328,
                0.600: 0.325,
                0.700: 0.322,
                0.800: 0.32,
                0.900: 0.317,
                1.000: 0.315,
                1.100: 0.313,
                1.200: 0.31,
                1.300: 0.309,
                1.400: 0.307,
                1.500: 0.305,
                1.600: 0.303,
                1.700: 0.302,
                1.800: 0.3,
                1.900: 0.299,
                2.000: 0.297,
                2.100: 0.296,
                2.200: 0.295,
                2.300: 0.294,
                2.400: 0.293,
                2.500: 0.291,
                2.600: 0.29,
                2.700: 0.289,
                2.800: 0.288,
                2.900: 0.287,
                3.000: 0.287,
                3.100: 0.286,
                3.200: 0.285,
                3.300: 0.284,
                3.400: 0.283,
                3.500: 0.282,
                3.600: 0.282,
                3.700: 0.281,
                3.800: 0.28,
                3.900: 0.279,
                4.000: 0.279,
                4.100: 0.278,
                4.200: 0.278,
                4.300: 0.277,
                4.400: 0.276,
                4.500: 0.276,
                4.600: 0.275,
                4.700: 0.275,
                4.800: 0.274,
                4.900: 0.274,
                5.000: 0.273,
                5.100: 0.273,
                5.200: 0.272,
                5.300: 0.272,
                5.400: 0.271,
                5.500: 0.271,
                5.600: 0.271,
                5.700: 0.27,
                5.800: 0.27,
                5.900: 0.269,
                6.000: 0.269,
                6.100: 0.269,
                6.200: 0.268,
                6.300: 0.268,
                6.400: 0.268,
                6.500: 0.267,
                6.600: 0.267,
                6.700: 0.267,
                6.800: 0.266,
                6.900: 0.266,
                7.000: 0.266,
                7.100: 0.265,
                7.200: 0.265,
                7.300: 0.265,
                7.400: 0.265,
                7.500: 0.264,
                7.600: 0.264,
                7.700: 0.264,
                7.800: 0.264,
                7.900: 0.263,
                8.000: 0.263,
                8.100: 0.263,
                8.200: 0.263,
                8.300: 0.263,
                8.400: 0.262,
                8.500: 0.262,
                8.600: 0.262,
                8.700: 0.262,
                8.800: 0.262,
                8.900: 0.261,
                9.000: 0.261,
                9.100: 0.261,
                9.200: 0.261,
                9.300: 0.261,
                9.400: 0.26,
                9.500: 0.26,
                9.600: 0.26,
                9.700: 0.26,
                9.800: 0.26,
                9.900: 0.26,
                10.000: 0.26
            };
610
611
612
613
            // màj pour jalhyd#146 : ajout de la cote de fond aux valeurs attendues
            for (const tk of Object.keys(t)) {
                t[tk] = t[tk] + rem.getCoteFond(Number(tk));
            }
614
            // compareObject("Ytorrentiel", res.getValue("tor"), t, 0.01);
615
            compareExtraResult("Ytorrentiel", res, "tor", t, 0.01);
616

Mathias Chouet's avatar
Mathias Chouet committed
617
            // tslint:disable-next-line:max-line-length
618
            // const x = [0.000, 0.100, 0.200, 0.300, 0.400, 0.500, 0.600, 0.700, 0.800, 0.900, 1.000, 1.100, 1.200, 1.300, 1.400, 1.500, 1.600, 1.700, 1.800, 1.900, 2.000, 2.100, 2.200, 2.300, 2.400, 2.500, 2.600, 2.700, 2.800, 2.900, 3.000, 3.100, 3.200, 3.300, 3.400, 3.500, 3.600, 3.700, 3.800, 3.900, 4.000, 4.100, 4.200, 4.300, 4.400, 4.500, 4.600, 4.700, 4.800, 4.900, 5.000, 5.100, 5.200, 5.300, 5.400, 5.500, 5.600, 5.700, 5.800, 5.900, 6.000, 6.100, 6.200, 6.300, 6.400, 6.500, 6.600, 6.700, 6.800, 6.900, 7.000, 7.100, 7.200, 7.300, 7.400, 7.500, 7.600, 7.700, 7.800, 7.900, 8.000, 8.100, 8.200, 8.300, 8.400, 8.500, 8.600, 8.700, 8.800, 8.900, 9.000, 9.100, 9.200, 9.300, 9.400, 9.500, 9.600, 9.700, 9.800, 9.900, 10.000];
619
            // compareArray("abscisses", res.getValue("trX"), x);
620

621
            const expLog = new cLog();
622

623
            let m = new Message(MessageCode.INFO_REMOUS_H_CRITIQUE);
624
            m.extraVar.Yc = 0.403;
625
626
            expLog.add(m);

627
            m = new Message(MessageCode.INFO_REMOUS_H_NORMALE);
628
            m.extraVar.Yn = 0.253;
629
630
            expLog.add(m);

Mathias Chouet's avatar
Mathias Chouet committed
631
            expLog.add(new Message(MessageCode.WARNING_REMOUS_PAS_CALCUL_DEPUIS_AVAL));
632

633
            expLog.add(new Message(MessageCode.INFO_REMOUS_CALCUL_TORRENTIEL));
634

635
            compareLog(res.globalLog, expLog);
636
637
638
        });
    });
});