diff --git a/spec/remous_rect_trapezes_pentefaible.spec.ts b/spec/remous_rect_trapezes_pentefaible.spec.ts index 10c56dbe511c519513292feea26ab686a382ccf4..a8c9c1fdf8f6107f48373deb569c49cd90fcfd0e 100644 --- a/spec/remous_rect_trapezes_pentefaible.spec.ts +++ b/spec/remous_rect_trapezes_pentefaible.spec.ts @@ -378,4 +378,64 @@ describe('Class Remous / section rectangulaire :', () => { compareLog(rem.log, expLog); }); + + it("faible pente, pas de fluvial, torrentiel tronqué, calcul Hs", () => { + let prms = new ParamsSectionRectang(undefined, // tirant d'eau + 2.5, // largeur de fond + 40, // Ks=Strickler + 2, // Q=Débit + 0.001, // If=pente du fond + precDist, // précision + 1 // YB=hauteur de berge + ); + + let sect = new cSnRectang(prms); + + let prem = new CourbeRemousParams(sect, 0.15, // Yamont = tirant amont + 0.4, // Yaval = tirant aval + 100, // Long= Longueur du bief + 5, // Dx=Pas d'espace + MethodeResolution.Trapezes + ); + + let rem = new CourbeRemous(prem); + + let res = rem.calculRemous("Hs"); + + // données de validation : version PHP (Oct 2017) méthode trapèzes + + expect(Object.keys(res["flu"]).length == 0).toBeTruthy("la ligne d'eau fluviale ne devrait comporter aucune valeur"); + + let t = { 0.000: 0.15, 5.000: 0.239, 10.000: 0.34 }; + compareObject("Ytorrentiel", res["tor"], t, 0.008); + + let x = [0.000, 5.000, 10.000]; + compareArray("abscisses", res["trX"], x); + + let extraHS = { 0.000: 1.6, 5.000: 0.808, 10.000: 0.618 }; + compareObject("extra (Hs)", res["tRes"], extraHS, 0.001); + + let expLog = new cLog(); + let m = new Message(MessageCode.ERROR_REMOUS_LARGEUR_BERGE); + m.extraVar["B"] = 2.5; + expLog.add(m); + + m = new Message(MessageCode.ERROR_REMOUS_H_CRITIQUE); + m.extraVar["Yc"] = 0.403; + expLog.add(m); + + m = new Message(MessageCode.ERROR_REMOUS_H_NORMALE); + m.extraVar["Yn"] = 0.953; + expLog.add(m); + + expLog.add(new Message(MessageCode.ERROR_REMOUS_PAS_CALCUL_DEPUIS_AVAL)); + + expLog.add(new Message(MessageCode.ERROR_REMOUS_CALCUL_TORRENTIEL)); + + m = new Message(MessageCode.ERROR_REMOUS_ARRET_CRITIQUE); + m.extraVar["x"] = 15; + expLog.add(m); + + compareLog(rem.log, expLog); + }); }); diff --git a/src/remous.ts b/src/remous.ts index 3df80f2727b25f2d226e9d153f6cf0aeeff36252..de53b50c3ae6f628318517db10e83a2ff18a359e 100644 --- a/src/remous.ts +++ b/src/remous.ts @@ -664,7 +664,7 @@ export class CourbeRemous extends Nub { // Calcul de la variable à calculer let tRes: { [key: number]: number } = {}; - if (val_a_cal != undefined && nFlu != 0 && nTor != 0) { + if (val_a_cal != undefined && (nFlu != 0 || nTor != 0)) { for (let rX of trX) { let rY = undefined; let hasFlu: boolean = crbFlu[+rX] != undefined;