diff --git a/spec/structure/structure_triangular_trunc_weir.spec.ts b/spec/structure/structure_triangular_trunc_weir.spec.ts index ccf716cf991616e2df59ceb3ad90303c9f671c89..c0ba8feced40f69196a086f501a86e8678322b42 100644 --- a/spec/structure/structure_triangular_trunc_weir.spec.ts +++ b/spec/structure/structure_triangular_trunc_weir.spec.ts @@ -1,13 +1,23 @@ -import { StructureFlowMode, StructureFlowRegime } from "../../src/structure/structure"; -import { StructureTriangularTruncWeirFree } from "../../src/structure/structure_triangular_trunc_weir"; -import { TriangularTruncStructureParams } from "../../src/structure/structure_triangular_trunc_weir_params"; +import { StructureFlowMode, StructureFlowRegime } from "../../src/internal_modules"; +import { StructureTriangularWeir } from "../../src/internal_modules"; +import { TriangularStructureParams } from "../../src/internal_modules"; +import { StructureTriangularTruncWeirFree } from "../../src/internal_modules"; +import { TriangularTruncStructureParams } from "../../src/internal_modules"; +import { precDigits } from "../test_config"; import { itCalcQ } from "./functions"; -const structPrm: TriangularTruncStructureParams = - new TriangularTruncStructureParams(0, 100.1, 100, 100, 0.9, 101, 1.36); -const structTest: StructureTriangularTruncWeirFree = new StructureTriangularTruncWeirFree(structPrm, false); +let structTest: StructureTriangularTruncWeirFree = new StructureTriangularTruncWeirFree( + new TriangularTruncStructureParams(0, 100.1, 100, 100, 0.9, 101, 1.36), + false +); describe("Class StructureTriangularTruncWeirFree: ", () => { + beforeEach(() => { + structTest = new StructureTriangularTruncWeirFree( + new TriangularTruncStructureParams(0, 100.1, 100, 100, 0.9, 101, 1.36), + false + ); + }) describe("Calcul Q a surface libre avec h1 croissant: ", () => { const Z1: number[] = [100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.5, 101.8, 102]; @@ -20,4 +30,19 @@ describe("Class StructureTriangularTruncWeirFree: ", () => { itCalcQ(structTest, Z1[i], Infinity, Q[i], mode, regime); } }); + it("Q should be equal to triangular weir on triangular part", () => { + const strTriang = new StructureTriangularWeir( + new TriangularStructureParams(0, 100.1, 100.5, 100, 45, 1.36), + false + ); + structTest.prms.Z1.v = 100.5; + const resFree = structTest.Calc("Q"); + expect(resFree.vCalc).toBeCloseTo(strTriang.Calc("Q").vCalc, precDigits); + expect(resFree.values.ENUM_StructureFlowRegime).toBe(StructureFlowRegime.FREE); + structTest.prms.Z2.v = 100.4; + strTriang.prms.Z2.v = structTest.prms.Z2.v; + const resSubm = structTest.Calc("Q"); + expect(resSubm.vCalc).toBeCloseTo(strTriang.Calc("Q").vCalc, precDigits); + expect(resSubm.values.ENUM_StructureFlowRegime).toBe(StructureFlowRegime.PARTIAL); + }); });