diff --git a/spec/regime_uniforme_puissance.spec.ts b/spec/regime_uniforme_puissance.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..8363d83a46bc44e0d97ffffe367f0a19b09ec86f --- /dev/null +++ b/spec/regime_uniforme_puissance.spec.ts @@ -0,0 +1,141 @@ +/// <reference path="../node_modules/@types/jasmine/index.d.ts" /> + +import { Result } from "../src/base"; +import { RegimeUniforme } from "../src/regime_uniforme"; +import { cSnPuiss } from "../src/section/section_puissance"; +import { cParamsCanal } from "../src/section/section_type"; +import { precDigits, precDist } from "./nubtest"; + +describe('Class RegimeUniforme / section puissance: ', () => { + beforeAll(() => { + }); + + describe('Calc(): ', () => { + it('k should be 0.635', () => { + let paramCnl = new cParamsCanal(40, // Ks=Strickler + 1.2, // Q=Débit + 0.001, // If=pente du fond + precDist, // précision + 1 // YB= hauteur de berge + // YCL=Condition limite en cote à l'amont ou à l'aval + ); + + let sect = new cSnPuiss(undefined, paramCnl, + 0, // coef + 4 // largeur de berge + ); + // tirant d'eau + sect.v.Y = 0.8; + + let ru = new RegimeUniforme(sect, false); + + expect(ru.Calc("k").vCalc).toBeCloseTo(0.635, precDigits); + }); + + it('LargeurBerge should be 3.474', () => { + let paramCnl = new cParamsCanal(40, // Ks=Strickler + 1.2, // Q=Débit + 0.001, // If=pente du fond + precDist, // précision + 1 // YB= hauteur de berge + // YCL=Condition limite en cote à l'amont ou à l'aval + ); + + let sect = new cSnPuiss(undefined, paramCnl, + 0.5, // coef + 0 // largeur de berge + ); + // tirant d'eau + sect.v.Y = 0.8; + + let ru = new RegimeUniforme(sect, false); + + expect(ru.Calc("LargeurBerge").vCalc).toBeCloseTo(3.474, 2); + }); + + it('Strickler should be 33.774', () => { + let paramCnl = new cParamsCanal(0, // Ks=Strickler + 1.2, // Q=Débit + 0.001, // If=pente du fond + precDist, // précision + 1 // YB= hauteur de berge + // YCL=Condition limite en cote à l'amont ou à l'aval + ); + + let sect = new cSnPuiss(undefined, paramCnl, + 0.5, // coef + 4 // largeur de berge + ); + // tirant d'eau + sect.v.Y = 0.8; + + let ru = new RegimeUniforme(sect, false); + + expect(ru.Calc("Ks").vCalc).toBeCloseTo(33.774, 2); + }); + + + it('If should be 0.002', () => { + let paramCnl = new cParamsCanal(40, // Ks=Strickler + 1.2, // Q=Débit + 0, // If=pente du fond + precDist, // précision + 1 // YB= hauteur de berge + // YCL=Condition limite en cote à l'amont ou à l'aval + ); + + let sect = new cSnPuiss(undefined, paramCnl, + 0.5, // coef + 4 // largeur de berge + ); + // tirant d'eau + sect.v.Y = 0.8; + + let ru = new RegimeUniforme(sect, false); + + expect(ru.Calc("If").vCalc).toBeCloseTo(0.002, 2); + }); + + it('Q should be 1.421', () => { + let paramCnl = new cParamsCanal(40, // Ks=Strickler + 0, // Q=Débit + 0.001, // If=pente du fond + precDist, // précision + 1 // YB= hauteur de berge + // YCL=Condition limite en cote à l'amont ou à l'aval + ); + + let sect = new cSnPuiss(undefined, paramCnl, + 0.5, // coef + 4 // largeur de berge + ); + // tirant d'eau + sect.v.Y = 0.8; + + let ru = new RegimeUniforme(sect, false); + + expect(ru.Calc("Q").vCalc).toBeCloseTo(1.421, precDigits); + }); + + it('Y should be 0.742', () => { + let paramCnl = new cParamsCanal(40, // Ks=Strickler + 1.2, // Q=Débit + 0.001, // If=pente du fond + precDist, // précision + 1 // YB= hauteur de berge + // YCL=Condition limite en cote à l'amont ou à l'aval + ); + + let sect = new cSnPuiss(undefined, paramCnl, + 0.5, // coef + 4 // largeur de berge + ); + // tirant d'eau + sect.v.Y = 0; + + let ru = new RegimeUniforme(sect, false); + + expect(ru.Calc("Y").vCalc).toBeCloseTo(0.742, precDigits); + }); + }); +});