An error occurred while loading the file. Please try again.
-
Grand Francois authored
- classe ErrorMessage renommée en Message, ErrorCode en MessageCode
2ef059a3
/// <reference path="../node_modules/@types/jasmine/index.d.ts" />
import { Result } from "../src/base";
import { MessageCode } from "../src/util/message";
import { RegimeUniforme } from "../src/regime_uniforme";
import { ParamsSectionPuiss, cSnPuiss } from "../src/section/section_puissance";
import { precDist, equalEpsilon } from "./nubtest";
function check(val1: Result, val2: number, eps: number = precDist) {
expect(equalEpsilon(val1.vCalc, val2, eps)).toBeTruthy("expected " + val2 + ", got " + val1.vCalc);
}
describe('Class RegimeUniforme / section puissance :', () => {
describe('pas de débordement :', () => {
it('k should be 0.635', () => {
let prms = new ParamsSectionPuiss(undefined, // coef
0.8, // tirant d'eau
4, // largeur de berge
40, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("k"), 0.635);
});
it('LargeurBerge should be 3.473', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
0.8, // tirant d'eau
undefined, // largeur de berge
40, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("LargeurBerge"), 3.473);
});
it('Strickler should be 33.774', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
0.8, // tirant d'eau
4, // largeur de berge
undefined, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("Ks", 1e-8), 33.774);
});
it('If should be 0.002', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
0.8, // tirant d'eau
4, // largeur de berge
40, // Ks=Strickler
1.2, // Q=Débit
undefined, // If=pente du fond
precDist, // précision
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("If", 0, 0.00001), 0.00071, 0.00001);
});
it('Q should be 1.421', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
0.8, // tirant d'eau
4, // largeur de berge
40, // Ks=Strickler
undefined, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("Q"), 1.421);
});
it('Y should be 0.742', () => {
let paramCnl = new ParamsSectionPuiss(0.5, // coef
undefined, // tirant d'eau
4, // largeur de berge
40, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, paramCnl);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("Y"), 0.742);
});
});
describe('débordement :', () => {
it('k should be undefined', () => {
let prms = new ParamsSectionPuiss(undefined, // coef
2, // tirant d'eau
4, // largeur de berge
40, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
let res: Result = ru.Calc("k");
expect(res.vCalc).toBeUndefined();
expect(res.code).toBe(MessageCode.ERROR_DICHO_INIT_DOMAIN);
});
it('k should be 0.635', () => {
let prms = new ParamsSectionPuiss(undefined, // coef
2, // tirant d'eau
4, // largeur de berge
40, // Ks=Strickler
10, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("k"), 0.933);
});
it('LargeurBerge should be 0.721', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
2, // tirant d'eau
undefined, // largeur de berge
40, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("LargeurBerge"), 0.721);
});
it('Strickler should be 4.367', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
2, // tirant d'eau
4, // largeur de berge
undefined, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("Ks", 1e-8), 4.367);
});
it('Ks should be undefined', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
2, // tirant d'eau
4, // largeur de berge
undefined, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect);
ru.dichoStartIntervalMaxSteps = 3;
let res: Result = ru.Calc("Ks", 5000000);
expect(res.vCalc).toBeUndefined();
expect(res.code).toBe(MessageCode.ERROR_DICHO_INITVALUE_HIGH);
});
it('Ks should be undefined', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
2, // tirant d'eau
4, // largeur de berge
undefined, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect);
ru.dichoStartIntervalMaxSteps = 1;
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
let res: Result = ru.Calc("Ks", 1e-8);
expect(res.vCalc).toBeUndefined();
expect(res.code).toBe(MessageCode.ERROR_DICHO_INITVALUE_LOW);
});
it('If should be 0.001', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
2, // tirant d'eau
4, // largeur de berge
4.366, // Ks=Strickler
1.2, // Q=Débit
undefined, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("If"), 0.001);
});
it('Q should be 10.993', () => {
let prms = new ParamsSectionPuiss(0.5, // coef
2, // tirant d'eau
4, // largeur de berge
40, // Ks=Strickler
undefined, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, prms);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("Q"), 10.993);
});
it('Y should be 0.742', () => {
let paramCnl = new ParamsSectionPuiss(0.5, // coef
undefined, // tirant d'eau
4, // largeur de berge
40, // Ks=Strickler
1.2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1 // YB= hauteur de berge
);
let sect = new cSnPuiss(undefined, paramCnl);
let ru = new RegimeUniforme(sect, false);
check(ru.Calc("Y"), 0.742);
});
});
});