diff --git a/spec/pab/cloison_aval.spec.ts b/spec/pab/cloison_aval.spec.ts index 3e3537b5f59908c7838703220235da97cd3e80a3..156d0efbbb5958fcb406ee133a2be07f72597bd3 100644 --- a/spec/pab/cloison_aval.spec.ts +++ b/spec/pab/cloison_aval.spec.ts @@ -36,14 +36,16 @@ describe("class CloisonAval", () => { const r = ca.CalcSerie(); expect(r.vCalc).toBeCloseTo(75.059, 3); expect(r.values.ZDV).toBeCloseTo(73.9, 2); - expect(r.log.messages[0].code).toBe(MessageCode.WARNING_VANLEV_ZDV_SUP_MAX); + expect(r.log.messages[0].code).toBe(MessageCode.WARNING_NOTCH_SUBMERSION_GREATER_THAN_07); + expect(r.log.messages[1].code).toBe(MessageCode.WARNING_VANLEV_ZDV_SUP_MAX); }); it("ZDV max bound Calc(Z1) should return 75.096 and extraResults.ZDV should be 74", () => { s.prms.minZDV.singleValue = 74; const r = ca.CalcSerie(); expect(r.vCalc).toBeCloseTo(75.096, 3); expect(r.values.ZDV).toBeCloseTo(74, 2); - expect(r.log.messages[0].code).toBe(MessageCode.WARNING_VANLEV_ZDV_INF_MIN); + expect(r.log.messages[0].code).toBe(MessageCode.WARNING_NOTCH_SUBMERSION_GREATER_THAN_07); + expect(r.log.messages[1].code).toBe(MessageCode.WARNING_VANLEV_ZDV_INF_MIN); }); }); diff --git a/spec/structure/parallel_structure.spec.ts b/spec/structure/parallel_structure.spec.ts index f6aed5569b77be102b5cc3d14c8a85b923684d6a..7fe8bcda547e5c6f872958b95d843b0b447a414b 100644 --- a/spec/structure/parallel_structure.spec.ts +++ b/spec/structure/parallel_structure.spec.ts @@ -7,6 +7,7 @@ import { ParallelStructureParams } from "../../src/structure/parallel_structure_ import { StructureKivi } from "../../src/structure/structure_kivi"; import { StructureKiviParams } from "../../src/structure/structure_kivi_params"; import { LoiDebit } from "../../src/structure/structure_props"; +import { StructureRectangularOrificeFree } from "../../src/structure/structure_rectangular_orifice_free"; import { MessageCode } from "../../src/util/message"; import { Result } from "../../src/util/result"; import { precDigits } from "../test_config"; @@ -175,4 +176,38 @@ describe("Class ParallelStructure: ", () => { expect(ps.CalcSerie().vCalc).toBeCloseTo(100, 3); }); }); + fdescribe("Strucure logs should be propagated to parent Result - ", () => { + it("example with StructureRectangularOrificeFree, h2 > 0, calculating Q", () => { + const ps = Session.getInstance().createNub( + new Props({ calcType: CalculatorType.ParallelStructure }) + ) as ParallelStructure; + ps.prms.Q.singleValue = 2.309; + ps.addChild(CreateStructure(LoiDebit.RectangularOrificeFree)); + ps.prms.Z1.singleValue = 105; + ps.prms.Z2.singleValue = 102; + ps.structures[0].prms.ZDV.singleValue = 101.5; + const res = ps.CalcSerie().resultElement; + expect(res.log.messages.length).toBe(1); + expect( + res.log.messages[0].code + ).toBe(MessageCode.WARNING_DOWNSTREAM_ELEVATION_POSSIBLE_SUBMERSION); + }); + it("example with StructureRectangularOrificeFree, h2 > 0, calculating something other than Q", () => { + const ps = Session.getInstance().createNub( + new Props({ calcType: CalculatorType.ParallelStructure }) + ) as ParallelStructure; + ps.prms.Q.singleValue = 2.309; + const c = CreateStructure(LoiDebit.RectangularOrificeFree) as StructureRectangularOrificeFree; + ps.addChild(c); + ps.prms.Z1.singleValue = 105; + ps.prms.Z2.singleValue = 102; + ps.structures[0].prms.ZDV.singleValue = 101.5; + ps.calculatedParam = c.prms.L; + const res = ps.CalcSerie().resultElement; + expect(res.log.messages.length).toBe(1); + expect( + res.log.messages[0].code + ).toBe(MessageCode.WARNING_DOWNSTREAM_ELEVATION_POSSIBLE_SUBMERSION); + }); + }); }); diff --git a/src/nub.ts b/src/nub.ts index 09a0e8514c8836a3e79a785071e126b17fdc69f9..a883bcf1ebdf0878939ec2d28e2d147caaa810d2 100644 --- a/src/nub.ts +++ b/src/nub.ts @@ -1277,7 +1277,7 @@ export abstract class Nub extends ComputeNode implements IObservable { return computedSymbol; } - protected doCalc(computedSymbol?: any, rInit?: number) { + protected doCalc(computedSymbol?: any, rInit?: number): Result { return this.Calc(computedSymbol, rInit); } diff --git a/src/structure/parallel_structure.ts b/src/structure/parallel_structure.ts index bb23f3832858fd266bb3bc409ec2bdce3f58c178..b21a5e9e3d6ff605d85b95fcffa80a880d5c46b9 100644 --- a/src/structure/parallel_structure.ts +++ b/src/structure/parallel_structure.ts @@ -89,9 +89,9 @@ export class ParallelStructure extends Nub { for (let i = 0; i < this._children.length; i++) { if (i !== iExcept) { const res: Result = this._children[i].Calc("Q"); - // @TODO vérifier que ça marche sans la ligne ci-dessous - // calcRes.resultElement.AddResultElementToExtra(res.resultElement, `ouvrage[${i}].Q`); qTot += res.vCalc; + // merge logs + calcRes.resultElement.log.addLog(res.log); } } // Assigne le débit total dans le résultat @@ -130,6 +130,8 @@ export class ParallelStructure extends Nub { if (r.ok) { this.result.symbol = r.symbol; this.result.vCalc = r.vCalc; + // merge logs + this.result.log.addLog(r.log); } else { this.currentResult = r; }