diff --git a/spec/structure/structure_vanlev.spec.ts b/spec/structure/structure_vanlev.spec.ts index 54eaee2c453b300c0758c40a1837f4c23c9b29db..b46e64fda01bc59c993dc9af1b5090a9dcd87e9a 100644 --- a/spec/structure/structure_vanlev.spec.ts +++ b/spec/structure/structure_vanlev.spec.ts @@ -1,19 +1,61 @@ -import { RectangularStructureParams } from "../../src/structure/rectangular_structure_params"; import { StructureVanLevLarinier, StructureVanLevParams } from "../../src/structure/structure_vanlev"; import { StructureVanLevVillemonte } from "../../src/structure/structure_vanlev"; +import { MessageCode } from "../../src/util/message"; -function getStructTest(bFente: boolean = false): StructureVanLevLarinier | StructureVanLevVillemonte { - const structPrm = new StructureVanLevParams(0.773, 73, 75.090, 74.86, 0.6, 0.4, 0.217, 73.5, 74); - if (bFente) { - return new StructureVanLevLarinier(structPrm, false); - } else { - return new StructureVanLevVillemonte(structPrm, false); - } -} - +let vlv: StructureVanLevVillemonte; describe("class StructureVanLevVillemonte", () => { + beforeEach( () => { + vlv = new StructureVanLevVillemonte( + new StructureVanLevParams(0.773, 73, 75.090, 74.86, 0.6, 0.4, 0.217, 73.5, 74) + , false); + }); it("Calc(Z1) should return 75.077 and extraResults.ZDV should be 73.95", () => { - expect(getStructTest().Calc("Z1").vCalc).toBeCloseTo(75.077, 3); - expect(getStructTest().Calc("Z1").extraResults.ZDV).toBeCloseTo(73.95, 2); + expect(vlv.Calc("Z1").vCalc).toBeCloseTo(75.077, 3); + expect(vlv.Calc("Z1").extraResults.ZDV).toBeCloseTo(73.95, 2); + }); + it("ZDV min bound Calc(Z1) should return 75.059 and extraResults.ZDV should be 73.9", () => { + const s = vlv; + s.prms.maxZDV.v = 73.90; + const r = s.Calc("Z1"); + expect(r.vCalc).toBeCloseTo(75.059, 3); + expect(r.extraResults.ZDV).toBeCloseTo(73.9, 2); + expect(r.log.messages[0].code).toBe(MessageCode.WARNING_VANLEV_ZDV_SUP_MAX); + }); + it("ZDV max bound Calc(Z1) should return 75.096 and extraResults.ZDV should be 74", () => { + const s = vlv; + s.prms.minZDV.v = 74; + const r = s.Calc("Z1"); + expect(r.vCalc).toBeCloseTo(75.096, 3); + expect(r.extraResults.ZDV).toBeCloseTo(74, 2); + expect(r.log.messages[0].code).toBe(MessageCode.WARNING_VANLEV_ZDV_INF_MIN); + }); +}); + +let vll: StructureVanLevLarinier; +describe("class StructureVanLevLarinier", () => { + beforeEach( () => { + vll = new StructureVanLevLarinier( + new StructureVanLevParams(0.773, 73, 75.090, 74.86, 0.35, 0.65, 0.217, 73.3, 73.5) + , false); + }); + it("Calc(Z1) should return 75.077 and extraResults.ZDV should be 73.431", () => { + expect(vll.Calc("Z1").vCalc).toBeCloseTo(75.077, 3); + expect(vll.Calc("Z1").extraResults.ZDV).toBeCloseTo(73.431, 2); + }); + it("ZDV min bound Calc(Z1) should return 75.071 and extraResults.ZDV should be 73.4", () => { + const s = vll; + s.prms.maxZDV.v = 73.40; + const r = s.Calc("Z1"); + expect(r.vCalc).toBeCloseTo(75.071, 3); + expect(r.extraResults.ZDV).toBeCloseTo(73.4, 2); + expect(r.log.messages[0].code).toBe(MessageCode.WARNING_VANLEV_ZDV_SUP_MAX); + }); + it("ZDV max bound Calc(Z1) should return 75.092 and extraResults.ZDV should be 73.5", () => { + const s = vll; + s.prms.minZDV.v = 73.5; + const r = s.Calc("Z1"); + expect(r.vCalc).toBeCloseTo(75.092, 3); + expect(r.extraResults.ZDV).toBeCloseTo(73.5, 2); + expect(r.log.messages[0].code).toBe(MessageCode.WARNING_VANLEV_ZDV_INF_MIN); }); }); diff --git a/src/structure/structure_vanlev.ts b/src/structure/structure_vanlev.ts index 609c561046a4f838562ea770ab0661474e386d24..8a80ca415d10e86662372973b94fd3ff936b571f 100644 --- a/src/structure/structure_vanlev.ts +++ b/src/structure/structure_vanlev.ts @@ -68,7 +68,7 @@ function CalcVanneLevante( const r2: Result = s.superCalc("Z1", rInit); r2.extraResults.ZDV = s.prms.ZDV.v; if (m !== undefined) { - r2.addMessage(m); + r2.resultElements[0].addMessage(m); } return r2; }