Commit 18faadc5 authored by Dorchies David's avatar Dorchies David
Browse files

fix(verificateur): defective message for submerged blocks on MacroRugo

Refs #292
parent 6b803aad
......@@ -890,16 +890,17 @@ describe("vérificateur de franchissement −", () => {
expect(res.globalLog.messages[0].code).toBe(MessageCode.INFO_VERIF_OK);
});
// speed
// velocity
it("Vitesse trop élevée", () => {
// contexte
Session.getInstance().clear();
const mr = createMR();
mr.prms.B.singleValue = 2.218; // 2 patterns
mr.prms.Y.singleValue = 0.4; // emergent
// vérificateur
const v = new Verificateur();
v.nubToVerify = mr;
v.speciesList.push(FishSpecies[FishSpecies.SPECIES_1]); // 2.533 > 2.50
v.speciesList.push(FishSpecies[FishSpecies.SPECIES_3a]); // 2.533 > 2.50
// résultat
const res = v.CalcSerie();
expect(res.ok).toBe(false);
......@@ -911,6 +912,26 @@ describe("vérificateur de franchissement −", () => {
expect(r0.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MR_VMAX);
});
it("Cas submergé", () => {
// contexte
Session.getInstance().clear();
const mr = createMR();
mr.prms.B.singleValue = 2.218; // 2 patterns
// vérificateur
const v = new Verificateur();
v.nubToVerify = mr;
v.speciesList.push(FishSpecies[FishSpecies.SPECIES_1]); // 2.533 > 2.50
// résultat
const res = v.CalcSerie();
expect(res.ok).toBe(false);
expect(res.log.messages.length).toBe(1);
expect(res.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_SPECIES_GROUP_KO);
const r0 = v.species[0].result;
expect(r0.log.messages.length).toBe(1);
expect(r0.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MR_SUBMERGED);
});
// water level
it("Tirant d'eau trop faible", () => {
// contexte
......@@ -976,7 +997,7 @@ describe("vérificateur de franchissement −", () => {
const r0 = v.species[0].result;
expect(r0.log.messages.length).toBe(4); // 3 errors + crossabel width info
for (let i=0; i < 3; i++) {
expect(r0.log.messages[i].code).toBe(MessageCode.WARNING_VERIF_MRC_VMAX_APRON_N);
expect(r0.log.messages[i].code).toBe(MessageCode.WARNING_VERIF_MRC_SUBMERGED_APRON_N);
}
expect(r0.log.messages[3].code).toBe(MessageCode.INFO_VERIF_MRC_CROSSABLE_WIDTH);
expect(res.globalLog.messages.length).toBe(1);
......@@ -1001,7 +1022,7 @@ describe("vérificateur de franchissement −", () => {
const r0 = v.species[0].result;
expect(r0.log.messages.length).toBe(5); // warning sur les 4 radiers, plus erreur "aucun radier OK"
for (let i=0; i < 4; i++) {
expect(r0.log.messages[i].code).toBe(MessageCode.WARNING_VERIF_MRC_VMAX_APRON_N);
expect(r0.log.messages[i].code).toBe(MessageCode.WARNING_VERIF_MRC_SUBMERGED_APRON_N);
}
expect(r0.log.messages[4].code).toBe(MessageCode.ERROR_VERIF_MRC_AT_LEAST_ONE_APRON);
expect(res.globalLog.messages.length).toBe(1);
......
......@@ -228,6 +228,9 @@ export enum MessageCode {
/** Vérificateur, passe à macrorugosités : vitesse max. %V% trop élevée (maximum: %maxV%) */
ERROR_VERIF_MR_VMAX,
/** Vérificateur, passe à macrorugosités : Blocs submergés */
ERROR_VERIF_MR_SUBMERGED,
/** Vérificateur, passe à macrorugosités : puissance dissipée %PV% trop élevée (maximum: %maxPV%) */
ERROR_VERIF_MR_PVMAX,
......@@ -243,6 +246,9 @@ export enum MessageCode {
/** Vérificateur, passe à macrorugosités complexe : vitesse max. %V% trop élevée (maximum: %maxV%) dans le radier %N% */
WARNING_VERIF_MRC_VMAX_APRON_N,
/** Vérificateur, passe à macrorugosités complexe : Blocs submergés dans le radier %N% */
WARNING_VERIF_MRC_SUBMERGED_APRON_N,
/** Vérificateur, passe à macrorugosités complexe : tirant d'eau %Y% insuffisant (minimum: %minY%) dans le radier %N% */
WARNING_VERIF_MRC_YMIN_APRON_N,
......
......@@ -1050,8 +1050,17 @@ export class Espece extends Nub implements Observer {
verifResult.log.add(m);
}
// 2. speed
if (passResult.values.ENUM_MacroRugoFlowType === MacroRugoFlowType.SUBMERGED || this.prms.VeMax.singleValue !== undefined && isGreaterThan(passResult.values.Vmax, this.prms.VeMax.singleValue, 1e-3)) {
// 2. velocity or submerged
if (passResult.values.ENUM_MacroRugoFlowType === MacroRugoFlowType.SUBMERGED) {
val = 0;
if (apronNumber !== undefined) {
const m: Message = new Message(MessageCode.WARNING_VERIF_MRC_SUBMERGED_APRON_N);
m.parent = passResult.log; // trick to prefix message with Nub position inside parent
verifResult.log.add(m);
} else {
verifResult.log.add(new Message(MessageCode.ERROR_VERIF_MR_SUBMERGED));
}
} else if (passResult.values.ENUM_MacroRugoFlowType === MacroRugoFlowType.SUBMERGED || this.prms.VeMax.singleValue !== undefined && isGreaterThan(passResult.values.Vmax, this.prms.VeMax.singleValue, 1e-3)) {
val = 0;
let m: Message;
if (apronNumber !== undefined) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment