diff --git a/spec/session/session.verificateur.first.ts b/spec/session/session.verificateur.first.ts index 9577d0f2b0ef4f8e14490e2b27d69b023df9d77a..94f8a00f8b53ee9a01e2776708cefbc985757b6d 100644 --- a/spec/session/session.verificateur.first.ts +++ b/spec/session/session.verificateur.first.ts @@ -152,7 +152,7 @@ export const sessionVerificateurFirst = { value: 0.4 }, { - symbol: "VMax", + symbol: "VeMax", mode: "SINGLE", value: 2.5 }, @@ -343,7 +343,7 @@ export const sessionVerificateurFirst = { value: 0.4 }, { - symbol: "VMax", + symbol: "VeMax", mode: "SINGLE", value: 2.5 }, diff --git a/spec/session/session.verificateur.last.ts b/spec/session/session.verificateur.last.ts index cab34a220a42bd9fc0f77c1ca7efebda3d6100ac..c7bb319c5262c3af03ef8c4ebb24baed1b3b93d1 100644 --- a/spec/session/session.verificateur.last.ts +++ b/spec/session/session.verificateur.last.ts @@ -136,7 +136,7 @@ export const sessionVerificateurLast = { value: 0.4 }, { - symbol: "VMax", + symbol: "VeMax", mode: "SINGLE", value: 2.5 }, @@ -327,7 +327,7 @@ export const sessionVerificateurLast = { value: 0.4 }, { - symbol: "VMax", + symbol: "VeMax", mode: "SINGLE", value: 2.5 }, diff --git a/spec/verificateur/verificateur.spec.ts b/spec/verificateur/verificateur.spec.ts index 951ffcfdfc4e3c118995fb0467d95a2e396b5d74..3ffd541ec75659d178bb0664e4ec927284be625a 100644 --- a/spec/verificateur/verificateur.spec.ts +++ b/spec/verificateur/verificateur.spec.ts @@ -18,6 +18,7 @@ import { ParType } from "../../src/par/par"; import { MRCInclination } from "../../src/macrorugo/mrc-inclination"; import { Espece } from "../../src/verification/espece"; import { StructureJetType } from "../../src/structure/structure"; +import { EspeceParams } from "../../src/verification/espece_params"; function createPab(): Pab { const pab = Session.getInstance().createSessionNub( @@ -251,7 +252,7 @@ describe("vérificateur de franchissement −", () => { it("Plusieurs warnings entraînent la non-franchissabilité d'une cloison", () => { // contexte Session.getInstance().clear(); - const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-04-29T10:00:03.138Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"bjlnc2","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Croustibat®"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.6},{"symbol":"BMin","mode":"SINGLE","value":0.18},{"symbol":"PMinS","mode":"SINGLE","value":0.9},{"symbol":"PMinP","mode":"SINGLE","value":0.9},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":25},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":50000}]},{"uid":"M29hc3","props":{"calcType":"Pab"},"meta":{"title":"PAB 1"},"children":[{"uid":"eDllOD","props":{"calcType":"Cloisons"},"children":[{"uid":"ZGMwc3","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":98},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"cGs5OX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":101},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":100.5},{"symbol":"ZRAM","mode":"SINGLE","value":100.75},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":2.349},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":101}],"downWall":{"uid":"NzBlcD","props":{"calcType":"CloisonAval"},"children":[{"uid":"cG5xdX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":97.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"aGM1ZG","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":100.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":100.25}]}}]}`; + const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-04-29T10:00:03.138Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"bjlnc2","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Croustibat®"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.6},{"symbol":"BMin","mode":"SINGLE","value":0.18},{"symbol":"PMinS","mode":"SINGLE","value":0.9},{"symbol":"PMinP","mode":"SINGLE","value":0.9},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":25},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":50000}]},{"uid":"M29hc3","props":{"calcType":"Pab"},"meta":{"title":"PAB 1"},"children":[{"uid":"eDllOD","props":{"calcType":"Cloisons"},"children":[{"uid":"ZGMwc3","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":98},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"cGs5OX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":101},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":100.5},{"symbol":"ZRAM","mode":"SINGLE","value":100.75},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":2.349},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":101}],"downWall":{"uid":"NzBlcD","props":{"calcType":"CloisonAval"},"children":[{"uid":"cG5xdX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":97.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"aGM1ZG","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":100.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":100.25}]}}]}`; Session.getInstance().unserialise(sess); const pab = Session.getInstance().findNubByUid("M29hc3") as Pab; const espece = Session.getInstance().findNubByUid("bjlnc2") as Espece; @@ -283,7 +284,7 @@ describe("vérificateur de franchissement −", () => { it("Plusieurs warnings entraînent la non-franchissabilité d'une cloison (2)", () => { // contexte Session.getInstance().clear(); - const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-04-29T10:00:03.138Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"bjlnc2","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Croustibat®"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":50000}]},{"uid":"M29hc3","props":{"calcType":"Pab"},"meta":{"title":"PAB 1"},"children":[{"uid":"eDllOD","props":{"calcType":"Cloisons"},"children":[{"uid":"ZGMwc3","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":98},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"cGs5OX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":101},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":100.5},{"symbol":"ZRAM","mode":"SINGLE","value":100.75},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":2.349},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":101}],"downWall":{"uid":"NzBlcD","props":{"calcType":"CloisonAval"},"children":[{"uid":"cG5xdX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":97.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"aGM1ZG","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":100.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":100.25}]}}]}`; + const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-04-29T10:00:03.138Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"bjlnc2","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Croustibat®"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":50000}]},{"uid":"M29hc3","props":{"calcType":"Pab"},"meta":{"title":"PAB 1"},"children":[{"uid":"eDllOD","props":{"calcType":"Cloisons"},"children":[{"uid":"ZGMwc3","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":98},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"cGs5OX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":101},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":100.5},{"symbol":"ZRAM","mode":"SINGLE","value":100.75},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":2.349},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":101}],"downWall":{"uid":"NzBlcD","props":{"calcType":"CloisonAval"},"children":[{"uid":"cG5xdX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":97.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"aGM1ZG","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":100.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":100.25}]}}]}`; Session.getInstance().unserialise(sess); const pab = Session.getInstance().findNubByUid("M29hc3") as Pab; const espece = Session.getInstance().findNubByUid("bjlnc2") as Espece; @@ -313,7 +314,7 @@ describe("vérificateur de franchissement −", () => { it("Puissance dissipée trop élevée", () => { // contexte Session.getInstance().clear(); - Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:11:24.549Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"MDdjbW","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"Mno1eG","props":{"calcType":"Cloisons"},"children":[{"uid":"ZXQ3N2","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"MWhoMX","props":{"calcType":"CloisonAval"},"children":[{"uid":"NXRnbm","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":50},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"MDdjbW","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`); + Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:11:24.549Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"MDdjbW","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"Mno1eG","props":{"calcType":"Cloisons"},"children":[{"uid":"ZXQ3N2","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"MWhoMX","props":{"calcType":"CloisonAval"},"children":[{"uid":"NXRnbm","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":50},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"MDdjbW","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`); const v = Session.getInstance().findNubByUid("bjlidj") as Verificateur; // LOL "bjlidj" // résultat const res = v.CalcSerie(); @@ -374,7 +375,7 @@ describe("vérificateur de franchissement −", () => { it("Échec sur certaines itérations mais pas toutes", () => { // contexte - const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-07T13:45:19.352Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Y3k4bj","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"ampiN3","props":{"calcType":"Cloisons"},"children":[{"uid":"Yzgxa2","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":28.085},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":27.413},{"symbol":"ZRAM","mode":"SINGLE","value":27.526},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"c3RmMz","props":{"calcType":"Cloisons"},"children":[{"uid":"dmwyem","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.858},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":27.186},{"symbol":"ZRAM","mode":"SINGLE","value":27.299},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"cTlydj","props":{"calcType":"Cloisons"},"children":[{"uid":"cWQ5aX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.631},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.959},{"symbol":"ZRAM","mode":"SINGLE","value":27.072},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"emRkMX","props":{"calcType":"Cloisons"},"children":[{"uid":"aG1xbj","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.404},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.731},{"symbol":"ZRAM","mode":"SINGLE","value":26.845},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"eG9hdT","props":{"calcType":"Cloisons"},"children":[{"uid":"M3Z5ZX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.177},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.504},{"symbol":"ZRAM","mode":"SINGLE","value":26.618},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.8},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"MINMAX","min":28,"max":30,"step":1,"extensionStrategy":0}],"downWall":{"uid":"bWExN2","props":{"calcType":"CloisonAval"},"children":[{"uid":"bm0zcD","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":26.95},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":26.391}]}},{"uid":"Y25qdn","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"c2d6OW","props":{"calcType":"Verificateur","nubToVerify":"Y3k4bj","speciesList":["Y25qdn","SPECIES_10"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; + const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-07T13:45:19.352Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Y3k4bj","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"ampiN3","props":{"calcType":"Cloisons"},"children":[{"uid":"Yzgxa2","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":28.085},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":27.413},{"symbol":"ZRAM","mode":"SINGLE","value":27.526},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"c3RmMz","props":{"calcType":"Cloisons"},"children":[{"uid":"dmwyem","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.858},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":27.186},{"symbol":"ZRAM","mode":"SINGLE","value":27.299},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"cTlydj","props":{"calcType":"Cloisons"},"children":[{"uid":"cWQ5aX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.631},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.959},{"symbol":"ZRAM","mode":"SINGLE","value":27.072},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"emRkMX","props":{"calcType":"Cloisons"},"children":[{"uid":"aG1xbj","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.404},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.731},{"symbol":"ZRAM","mode":"SINGLE","value":26.845},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"eG9hdT","props":{"calcType":"Cloisons"},"children":[{"uid":"M3Z5ZX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.177},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.504},{"symbol":"ZRAM","mode":"SINGLE","value":26.618},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.8},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"MINMAX","min":28,"max":30,"step":1,"extensionStrategy":0}],"downWall":{"uid":"bWExN2","props":{"calcType":"CloisonAval"},"children":[{"uid":"bm0zcD","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":26.95},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":26.391}]}},{"uid":"Y25qdn","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"c2d6OW","props":{"calcType":"Verificateur","nubToVerify":"Y3k4bj","speciesList":["Y25qdn","SPECIES_10"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; Session.getInstance().clear(); Session.getInstance().unserialise(sess); // vérificateur @@ -694,7 +695,7 @@ describe("vérificateur de franchissement −", () => { it("Puissance dissipée trop élevée", () => { // contexte Session.getInstance().clear(); - Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:16:38.320Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.6},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"Mm5tYm","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"Mm5tYm","props":{"calcType":"MacroRugo"},"meta":{"title":"Macro-rugo."},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"L","mode":"SINGLE","value":6},{"symbol":"B","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Q","mode":"CALCUL"},{"symbol":"Y","mode":"SINGLE","value":0.6},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2}]}]}`); + Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:16:38.320Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.6},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"Mm5tYm","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"Mm5tYm","props":{"calcType":"MacroRugo"},"meta":{"title":"Macro-rugo."},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"L","mode":"SINGLE","value":6},{"symbol":"B","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Q","mode":"CALCUL"},{"symbol":"Y","mode":"SINGLE","value":0.6},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2}]}]}`); const v = Session.getInstance().findNubByUid("bjlidj") as Verificateur; // résultat const res = v.CalcSerie(); @@ -783,7 +784,7 @@ describe("vérificateur de franchissement −", () => { it("Largeur franchissable insuffisante", () => { // contexte Session.getInstance().clear(); - Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T09:00:31.023Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"b2tnbW","props":{"calcType":"MacroRugoCompound","inclinedApron":"INCLINED"},"meta":{"title":"M-Rugo complexe"},"children":[{"uid":"cnl6cT","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.223},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"cmduNT","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":11.668},{"symbol":"B","mode":"SINGLE","value":1.11}]},{"uid":"d292eG","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":11.113},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"Y3AycW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":10.668},{"symbol":"B","mode":"SINGLE","value":0.672}]}],"parameters":[{"symbol":"L","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2},{"symbol":"Z1","mode":"SINGLE","value":13.1},{"symbol":"ZRL","mode":"SINGLE","value":10.5},{"symbol":"ZRR","mode":"SINGLE","value":12.5},{"symbol":"BR","mode":"SINGLE","value":4},{"symbol":"DH","mode":"SINGLE","value":3}]},{"uid":"Z215Y2","props":{"calcType":"Verificateur","nubToVerify":"b2tnbW","speciesList":["dDZzOX"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"dDZzOX","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":2.2},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":800000}]}]}`); + Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T09:00:31.023Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"b2tnbW","props":{"calcType":"MacroRugoCompound","inclinedApron":"INCLINED"},"meta":{"title":"M-Rugo complexe"},"children":[{"uid":"cnl6cT","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.223},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"cmduNT","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":11.668},{"symbol":"B","mode":"SINGLE","value":1.11}]},{"uid":"d292eG","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":11.113},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"Y3AycW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":10.668},{"symbol":"B","mode":"SINGLE","value":0.672}]}],"parameters":[{"symbol":"L","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2},{"symbol":"Z1","mode":"SINGLE","value":13.1},{"symbol":"ZRL","mode":"SINGLE","value":10.5},{"symbol":"ZRR","mode":"SINGLE","value":12.5},{"symbol":"BR","mode":"SINGLE","value":4},{"symbol":"DH","mode":"SINGLE","value":3}]},{"uid":"Z215Y2","props":{"calcType":"Verificateur","nubToVerify":"b2tnbW","speciesList":["dDZzOX"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"dDZzOX","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":2.2},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":800000}]}]}`); const v = Session.getInstance().findNubByUid("Z215Y2") as Verificateur; // résultat const res = v.CalcSerie(); @@ -801,7 +802,7 @@ describe("vérificateur de franchissement −", () => { it("Puissance dissipée trop élevée", () => { // contexte Session.getInstance().clear(); - Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:17:16.084Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.6},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"ZG5wNn","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"ZG5wNn","props":{"calcType":"MacroRugoCompound","inclinedApron":"INCLINED"},"meta":{"title":"M-Rugo complexe"},"children":[{"uid":"NHYyeW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"Mm9laW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.11}]},{"uid":"aTlxMn","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"bDlrYm","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":0.672}]}],"parameters":[{"symbol":"L","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2},{"symbol":"Z1","mode":"SINGLE","value":13.1},{"symbol":"ZRL","mode":"SINGLE","value":12.5},{"symbol":"ZRR","mode":"SINGLE","value":12.5},{"symbol":"BR","mode":"SINGLE","value":4},{"symbol":"DH","mode":"SINGLE","value":3}]}]}`); + Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:17:16.084Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.6},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"ZG5wNn","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"ZG5wNn","props":{"calcType":"MacroRugoCompound","inclinedApron":"INCLINED"},"meta":{"title":"M-Rugo complexe"},"children":[{"uid":"NHYyeW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"Mm9laW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.11}]},{"uid":"aTlxMn","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"bDlrYm","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":0.672}]}],"parameters":[{"symbol":"L","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2},{"symbol":"Z1","mode":"SINGLE","value":13.1},{"symbol":"ZRL","mode":"SINGLE","value":12.5},{"symbol":"ZRR","mode":"SINGLE","value":12.5},{"symbol":"BR","mode":"SINGLE","value":4},{"symbol":"DH","mode":"SINGLE","value":3}]}]}`); const v = Session.getInstance().findNubByUid("bjlidj") as Verificateur; // résultat const res = v.CalcSerie(); @@ -879,12 +880,98 @@ describe("vérificateur de franchissement −", () => { }); + describe("espèces personnalisées", () => { + + it("PAB, critères manquants, pas de jet plongeant", () => { + // contexte + Session.getInstance().clear(); + const pab = createPab(); + // espèce : omit BMin, PMinP and PVMax, but Pab has no diving jet so PMinP won't be marked as missing + const e = new Espece(new EspeceParams(0.7, 0.65, undefined, 0.2, undefined, 0.8, 1, 0.65)); + Session.getInstance().registerNub(e); + // vérificateur + const v = new Verificateur(); + v.nubToVerify = pab; + v.speciesList.push(e.uid); + // résultat + const res = v.CalcSerie(); + expect(res.ok).toBe(false); + + expect(e.result.log.messages.length).toBe(2); + expect(e.result.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION); + expect(e.result.log.messages[0].extraVar.var_criterion).toBe("PVMax"); + expect(e.result.log.messages[1].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION); + expect(e.result.log.messages[1].extraVar.var_criterion).toBe("BMin"); + }); + + it("PAR, critères manquants", () => { + // contexte + Session.getInstance().clear(); + const par = createPar(); // plane baffles by default + // espèce : omit YMinPB for Plane Baffles + const e = new Espece(new EspeceParams(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 3, undefined)); + Session.getInstance().registerNub(e); + // vérificateur + const v = new Verificateur(); + v.nubToVerify = par; + v.speciesList.push(e.uid); + // résultat + const res = v.CalcSerie(); + expect(res.ok).toBe(false); + + expect(e.result.log.messages.length).toBe(1); + expect(e.result.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION); + expect(e.result.log.messages[0].extraVar.var_criterion).toBe("YMinPB"); + }); + + it("MR, critères manquants", () => { + // contexte + Session.getInstance().clear(); + const mr = createMR(); + // espèce : omit VeMax + const e = new Espece(new EspeceParams(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0.25, undefined)); + Session.getInstance().registerNub(e); + // vérificateur + const v = new Verificateur(); + v.nubToVerify = mr; + v.speciesList.push(e.uid); + // résultat + const res = v.CalcSerie(); + expect(res.ok).toBe(false); + + expect(e.result.log.messages.length).toBe(1); + expect(e.result.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION); + expect(e.result.log.messages[0].extraVar.var_criterion).toBe("VeMax"); + }); + + it("MRC, critères manquants", () => { + // contexte + Session.getInstance().clear(); + const mrc = createMRC(); + // espèce : omit YMin + const e = new Espece(new EspeceParams(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 2.5)); + Session.getInstance().registerNub(e); + // vérificateur + const v = new Verificateur(); + v.nubToVerify = mrc; + v.speciesList.push(e.uid); + // résultat + const res = v.CalcSerie(); + expect(res.ok).toBe(false); + + expect(e.result.log.messages.length).toBe(1); + expect(e.result.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION); + expect(e.result.log.messages[0].extraVar.var_criterion).toBe("YMin"); + }); + + }); + describe("dépendances entre Nubs", () => { it("le Verificateur devrait être dépendant d'un Nub Espèce sélectionné", () => { // contexte Session.getInstance().clear(); - const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; + const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; Session.getInstance().unserialise(sess); const espece = Session.getInstance().findNubByUid("Z2xxan") as Espece; const verif = Session.getInstance().findNubByUid("OWsxdT") as Verificateur; @@ -896,7 +983,7 @@ describe("vérificateur de franchissement −", () => { it("le Verificateur ne devrait pas être dépendant d'un Nub Espèce non sélectionné", () => { // contexte Session.getInstance().clear(); - const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; + const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; Session.getInstance().unserialise(sess); const espece = Session.getInstance().findNubByUid("Z2xxan") as Espece; const verif = Session.getInstance().findNubByUid("OWsxdT") as Verificateur; @@ -908,7 +995,7 @@ describe("vérificateur de franchissement −", () => { it("le Verificateur devrait être dépendant d'un Nub choisi comme passe à vérifier", () => { // contexte Session.getInstance().clear(); - const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; + const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; Session.getInstance().unserialise(sess); const pab = Session.getInstance().findNubByUid("eGs4Nm") as Pab; const par = Session.getInstance().findNubByUid("YjJmYT") as ParSimulation; @@ -921,7 +1008,7 @@ describe("vérificateur de franchissement −", () => { it("le Verificateur ne devrait pas être dépendant d'un Nub non choisi comme passe à vérifier", () => { // contexte Session.getInstance().clear(); - const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; + const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`; Session.getInstance().unserialise(sess); const pab = Session.getInstance().findNubByUid("eGs4Nm") as Pab; const par = Session.getInstance().findNubByUid("YjJmYT") as ParSimulation; diff --git a/src/session.ts b/src/session.ts index 0e95eb431bd6449af9c1f6014e1519d7cf10719e..e64aecc8c7d0581f8aa2026c4ea2527dc4fbd2e6 100644 --- a/src/session.ts +++ b/src/session.ts @@ -709,7 +709,7 @@ export class Session { 2.5, // LMinP 0.3, // HMin 0.4, // YMin - 2.5, // VMax + 2.5, // VeMax 0.2, // YMinSB 0.3, // YMinPB 200 // PVMax diff --git a/src/util/message.ts b/src/util/message.ts index 346d1ea6c81c3cbc413c2a7f3acc198f2b2ec725..fbda2204ea91e0f668c39c8dd247b7f4832e0336 100644 --- a/src/util/message.ts +++ b/src/util/message.ts @@ -189,6 +189,9 @@ export enum MessageCode { /** Vérificateur : la passe à vérifier contient des erreurs */ ERROR_VERIF_ERRORS_IN_PASS, + /** Vérificateur : le critère testé %var_criterion% est indéfini */ + ERROR_VERIF_MISSING_CRITERION, + /** Vérificateur : la passe variée à vérifier contient des erreurs à l'itération %i% */ ERROR_VERIF_VARYING_ERRORS_IN_PASS, diff --git a/src/verification/espece.ts b/src/verification/espece.ts index 12c78dd7c9d5449fa2dcfd37274c28d8806f3dab..ddff199ab93c45fdecf88e9f5c0b52eea5a2a640 100644 --- a/src/verification/espece.ts +++ b/src/verification/espece.ts @@ -240,51 +240,51 @@ export class Espece extends Nub implements Observer { this.presets[CalculatorType.MacroRugo] = {}; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_1] = { YMin: 0.4, - VMax: 2.5 + VeMax: 2.5 }; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_2] = { YMin: 0.3, - VMax: 2.5 + VeMax: 2.5 }; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3a] = this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3b] = { YMin: 0.4, - VMax: 2 + VeMax: 2 }; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3c] = { YMin: 0.15, - VMax: 2 + VeMax: 2 }; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_4a] = { YMin: 0.3, - VMax: 2 + VeMax: 2 }; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_4b] = { YMin: 0.2, - VMax: 2 + VeMax: 2 }; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_5] = this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_6] = this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_7a] = { YMin: 0.3, - VMax: 2 + VeMax: 2 }; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_7b] = { YMin: 0.15, - VMax: 2 + VeMax: 2 }; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8a] = this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8b] = this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8c] = this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8d] = { YMin: 0.3, - VMax: 1.5 + VeMax: 1.5 }; this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_9a] = this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_9b] = this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_10] = { YMin: 0.2, - VMax: 1.5 + VeMax: 1.5 }; } @@ -306,6 +306,31 @@ export class Espece extends Nub implements Observer { this.loadPredefinedParametersValues(); } + /** + * Check that all given criteria are defined before controlling their values + * @param symbols list of symbols of criteria that have to be defined + * @return undefined if all criteria are present, a Result with appropriate error + * log messages otherwise + */ + protected checkCriteriaPresence(symbols: string[]): Result { + const r = new Result(); + r.addResultElement(new ResultElement()); + let error = false; + for (const s of symbols) { + if (this.getParameter(s).singleValue === undefined) { + error = true; + const m = new Message(MessageCode.ERROR_VERIF_MISSING_CRITERION); + m.extraVar.var_criterion = s; + r.log.add(m); + } + } + if (error) { + return r; + } else { + return undefined; // everything OK + } + } + /** Returns 1 if the fish can go through the pass, 0 if it cannot */ public Equation(): Result { // default result is 1 (OK) @@ -337,6 +362,34 @@ export class Espece extends Nub implements Observer { case CalculatorType.Pab: const passB = this._passToCheck as Pab; + // Check criteria presence (depends on jet types) + let hasAtLeastOneSurfaceJet = false; + let hasAtLeastOneDivingJet = false; + for (const wall of passB.children) { + hasAtLeastOneSurfaceJet = hasAtLeastOneSurfaceJet || this.hasJet(wall, [ StructureJetType.SURFACE, StructureJetType.SO ]); + hasAtLeastOneDivingJet = hasAtLeastOneDivingJet || this.hasJet(wall, StructureJetType.PLONGEANT); + } + hasAtLeastOneSurfaceJet = hasAtLeastOneSurfaceJet || this.hasJet(passB.downWall, [ StructureJetType.SURFACE, StructureJetType.SO ]); + hasAtLeastOneDivingJet = hasAtLeastOneDivingJet || this.hasJet(passB.downWall, StructureJetType.PLONGEANT); + + let cpRetPAB: Result; + let criteriaToCheck: string[] = []; + if (hasAtLeastOneSurfaceJet) { + criteriaToCheck = criteriaToCheck.concat([ "PVMax", "DHMaxS", "BMin", "PMinS", "LMinS" ]); + } + if (hasAtLeastOneDivingJet) { + criteriaToCheck = criteriaToCheck.concat([ "PVMax", "DHMaxP", "PMinP", "LMinP", "HMin" ]); + } + if (criteriaToCheck.length > 0) { + criteriaToCheck = criteriaToCheck.filter( + (item, index) => criteriaToCheck.indexOf(item) === index // deduplicate + ); + cpRetPAB = this.checkCriteriaPresence(criteriaToCheck); + if (cpRetPAB !== undefined) { + return cpRetPAB; + } + } + // A -- walls let cloisonNumber = 1; for (const wall of passB.children) { @@ -429,12 +482,25 @@ export class Espece extends Nub implements Observer { res.log.add(m); } - break; case CalculatorType.ParSimulation: const passR = this._passToCheck as ParSimulation; + // Check criteria presence, depending on baffle type + let parCriteria: string[] = []; + if ([ ParType.PLANE, ParType.FATOU ].includes(passR.parType)) { + parCriteria = [ "YMinPB" ]; + } else if ([ ParType.SUPERACTIVE, ParType.CHEVRON ].includes(passR.parType)) { + parCriteria = [ "YMinSB" ]; + } + if (parCriteria.length > 0) { + const cpRetPAR = this.checkCriteriaPresence(parCriteria); + if (cpRetPAR !== undefined) { + return cpRetPAR; + } + } + // 1. species groups 3a, 3b, 7b are discouraged if ([ FishSpecies.SPECIES_3a, FishSpecies.SPECIES_3b, FishSpecies.SPECIES_7b ].includes(this.species)) { res.log.add(new Message(MessageCode.WARNING_VERIF_PAR_SPECIES_GROUP)); @@ -459,6 +525,13 @@ export class Espece extends Nub implements Observer { case CalculatorType.MacroRugoCompound: const passMRC = this._passToCheck as MacrorugoCompound; + + // Check criteria presence + const cpRetMRC = this.checkCriteriaPresence([ "YMin", "VeMax" ]); + if (cpRetMRC !== undefined) { + return cpRetMRC; + } + let atLeastOneOK = false; let apronNumber = 1; const consecutiveWidths: number[] = []; @@ -501,11 +574,17 @@ export class Espece extends Nub implements Observer { break; case CalculatorType.MacroRugo: + // Check criteria presence + const cpRetMR = this.checkCriteriaPresence([ "YMin", "VeMax" ]); + if (cpRetMR !== undefined) { + return cpRetMR; + } res.vCalc = this.checkMacroRugo(this._passToCheck as MacroRugo, r, res); break; default: // should never happen + throw new Error(`Espece.Equation(): undefined pass type ${CalculatorType[this._passToCheck.calcType]}`); } } @@ -896,7 +975,7 @@ export class Espece extends Nub implements Observer { } // 2. speed - if (this.prms.VMax.singleValue !== undefined && isGreaterThan(passResult.values.Vmax, this.prms.VMax.singleValue, 1e-3)) { + if (this.prms.VeMax.singleValue !== undefined && isGreaterThan(passResult.values.Vmax, this.prms.VeMax.singleValue, 1e-3)) { val = 0; let m: Message; if (apronNumber !== undefined) { @@ -906,7 +985,7 @@ export class Espece extends Nub implements Observer { m = new Message(MessageCode.ERROR_VERIF_MR_VMAX); } m.extraVar.V = passResult.values.Vmax; - m.extraVar.maxV = this.prms.VMax.singleValue; + m.extraVar.maxV = this.prms.VeMax.singleValue; verifResult.log.add(m); } diff --git a/src/verification/espece_params.ts b/src/verification/espece_params.ts index 2073b0a5c45ca758aa08e9739996a78a0b3f51ba..1716163546f137e0ebb03ea97a058d16499d72ff 100644 --- a/src/verification/espece_params.ts +++ b/src/verification/espece_params.ts @@ -35,7 +35,7 @@ export class EspeceParams extends ParamsEquation { private _YMin: ParamDefinition; /** Vitesse d'écoulement maximale (m) (MacroRugo enrochements régulièrement répartis) */ - private _VMax: ParamDefinition; + private _VeMax: ParamDefinition; /** Tirant d'eau minimum sur les ralentisseurs suractifs de fond (m) */ private _YMinSB: ParamDefinition; @@ -48,7 +48,7 @@ export class EspeceParams extends ParamsEquation { constructor( rDHMaxS: number, rDHMaxP?: number, rBMin?: number, rPMinS?: number, rPMinP?: number, rLMinS?: number, - rLMinP?: number,rHMin?: number, rYMin?: number, rVMax?: number, rYMinSB?: number, rYMinPB?: number, rPVMax?: number + rLMinP?: number,rHMin?: number, rYMin?: number, rVeMax?: number, rYMinSB?: number, rYMinPB?: number, rPVMax?: number ) { super(); this._OK = new ParamDefinition(this, "OK", ParamDomainValue.POS, ""); @@ -61,7 +61,7 @@ export class EspeceParams extends ParamsEquation { this._LMinP = new ParamDefinition(this, "LMinP", ParamDomainValue.POS, "m", rLMinP); this._HMin = new ParamDefinition(this, "HMin", ParamDomainValue.POS, "m", rHMin); this._YMin = new ParamDefinition(this, "YMin", ParamDomainValue.POS, "m", rYMin); - this._VMax = new ParamDefinition(this, "VMax", ParamDomainValue.POS, "m", rVMax); + this._VeMax = new ParamDefinition(this, "VeMax", ParamDomainValue.POS, "m", rVeMax); this._YMinSB = new ParamDefinition(this, "YMinSB", ParamDomainValue.POS, "m", rYMinSB); this._YMinPB = new ParamDefinition(this, "YMinPB", ParamDomainValue.POS, "m", rYMinPB); this._PVMax = new ParamDefinition(this, "PVMax", ParamDomainValue.POS, "W/m³", rPVMax); @@ -76,7 +76,7 @@ export class EspeceParams extends ParamsEquation { this.addParamDefinition(this._LMinP); this.addParamDefinition(this._HMin); this.addParamDefinition(this._YMin); - this.addParamDefinition(this._VMax); + this.addParamDefinition(this._VeMax); this.addParamDefinition(this._YMinSB); this.addParamDefinition(this._YMinPB); this.addParamDefinition(this._PVMax); @@ -122,8 +122,8 @@ export class EspeceParams extends ParamsEquation { return this._YMin; } - public get VMax(): ParamDefinition { - return this._VMax; + public get VeMax(): ParamDefinition { + return this._VeMax; } public get YMinSB(): ParamDefinition {