From f981d63d4e14471ddc7facca8db61a82cdf5e93b Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Mon, 8 Jul 2019 12:01:17 +0200 Subject: [PATCH] PAB : add explicit log message when Z1 < Z2 --- spec/pab/pab.spec.ts | 24 ++++++++++++++++++++++++ src/nub.ts | 1 - src/pab/pab.ts | 4 ++++ src/util/message.ts | 5 +++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/spec/pab/pab.spec.ts b/spec/pab/pab.spec.ts index 6c223077..77e42a14 100644 --- a/spec/pab/pab.spec.ts +++ b/spec/pab/pab.spec.ts @@ -170,6 +170,7 @@ describe("Class Pab: ", () => { checkPabResults(pab, 0.773); }); }); + describe("Vanne levante sur Cloison aval", () => { beforeEach( () => { pab = createPabTest(); @@ -199,4 +200,27 @@ describe("Class Pab: ", () => { .toBe(MessageCode.ERROR_CLOISON_AVAL_UN_OUVRAGE_REGULE); }); }); + + describe("when Z1 is too low compared to ZDV", () => { + it("logs should appear if dichotomy does not converge", () => { + pab.calculatedParam = pab.prms.Q; + pab.prms.Z1.singleValue = 78.26; // @WTF 78.27 in the example above works, 78.26 fails ! + pab.CalcSerie(); + expect(pab.result.hasLog).toBe(true); + expect(pab.result.resultElement.log.messages[0].code) + .toBe(MessageCode.ERROR_DICHO_CONVERGE); // @TODO or other error message ? + }); + }); + + describe("variating Z1", () => { + it("logs should appear when Z1 < Z2", () => { + pab.calculatedParam = pab.prms.Q; + pab.prms.Z1.setValues(73, 85, 6); + pab.CalcSerie(); + expect(pab.result.nbResultElements).toBe(3); + expect(pab.result.hasLog).toBe(true); + expect(pab.result.resultElements[0].log.messages[0].code).toBe(MessageCode.ERROR_Z1_LOWER_THAN_Z2); + }); + }); + }); diff --git a/src/nub.ts b/src/nub.ts index b98610d3..c7226fd0 100644 --- a/src/nub.ts +++ b/src/nub.ts @@ -411,7 +411,6 @@ export abstract class Nub extends ComputeNode implements IObservable { if (this._result.resultElement.ok) { rInit = this._result.resultElement.vCalc; } - this._result.globalLog.addLog(this._result.globalLog); // update progress this.progress += progressStep; } diff --git a/src/pab/pab.ts b/src/pab/pab.ts index c749ae30..78537edb 100644 --- a/src/pab/pab.ts +++ b/src/pab/pab.ts @@ -110,6 +110,10 @@ export class Pab extends Nub { this.currentResult = new Result(new Message(MessageCode.ERROR_CLOISON_AVAL_UN_OUVRAGE_REGULE)); return this.result; } + if (sVarCalc === "Q" && this.prms.Z1.v < this.prms.Z2.v) { + this.currentResult = new Result(new Message(MessageCode.ERROR_Z1_LOWER_THAN_Z2)); + return this.result; + } return super.Calc(sVarCalc, rInit); } diff --git a/src/util/message.ts b/src/util/message.ts index 4c2778db..ace85e54 100644 --- a/src/util/message.ts +++ b/src/util/message.ts @@ -118,6 +118,11 @@ export enum MessageCode { */ ERROR_CLOISON_AVAL_UN_OUVRAGE_REGULE, + /** + * La cote amont est plus basse que la cote aval + */ + ERROR_Z1_LOWER_THAN_Z2, + /** * internationalisation : langue non prise en charge */ -- GitLab