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);
+    });
 });