diff --git a/spec/open-channel/regime_uniforme/regime_uniforme_circ.spec.ts b/spec/open-channel/regime_uniforme/regime_uniforme_circ.spec.ts index 7ace499084ccad8efcf892fd784550a73d1dfcea..11acb873086da4f172e6641d7059914c41540ccc 100644 --- a/spec/open-channel/regime_uniforme/regime_uniforme_circ.spec.ts +++ b/spec/open-channel/regime_uniforme/regime_uniforme_circ.spec.ts @@ -162,7 +162,7 @@ describe("Class RegimeUniforme / section circulaire :", () => { }); describe("en charge −", () => { - it("an error should be thrown if Y > D", () => { // @TODO or >= ? + it("an error should be thrown if sectionis circular, Y > D and YB >= D", () => { const paramSection = new ParamsSectionCirc( 2, // diamètre 2.1, // tirant d'eau diff --git a/src/open-channel/regime_uniforme.ts b/src/open-channel/regime_uniforme.ts index d94eda820d6abf5d6a9b02f5dd4831fe049d2545..d6c19271e6efb7612de003c713bf8bf700cc3d63 100644 --- a/src/open-channel/regime_uniforme.ts +++ b/src/open-channel/regime_uniforme.ts @@ -67,7 +67,11 @@ export class RegimeUniforme extends SectionNub { } // Est-ce qu'on est en charge sur une section circulaire ? @see #214 - if (this.section instanceof cSnCirc && isGreaterThan(this.section.prms.Y.v, this.section.prms.D.v, 1e-3)) { + if ( + this.section instanceof cSnCirc + && this.section.prms.YB.v >= this.section.prms.D.v + && isGreaterThan(this.section.prms.Y.v, this.section.prms.D.v, 1e-3) + ) { this.currentResult = new Result(new Message(MessageCode.ERROR_RU_CIRC_LEVEL_TOO_HIGH)); return this.result; } diff --git a/src/util/message.ts b/src/util/message.ts index db170d8477cc80ccd798c13c6511caa971f0eeca..02dda0781e6e3418a88bbfc2a6b98b7886440867 100644 --- a/src/util/message.ts +++ b/src/util/message.ts @@ -240,7 +240,7 @@ export enum MessageCode { */ ERROR_REMOUS_PAS_CALCUL, - /** RegimeUniforme : en charge (le tirant d'eau dépasse le diamètre de la section circulaire) */ + /** RegimeUniforme : impossible de calculer avec uen conduite en charge (section circulaire) */ ERROR_RU_CIRC_LEVEL_TOO_HIGH, /**