An error occurred while loading the file. Please try again.
-
Grand Francois authored
- régime uniforme : ajout de tests unitaires vérifiant l'échec de calcul de k et Ks (section puissance) - ajout de l'enum ResultCode pour spécifier les erreurs de fonctions renvoyant un Result
6d87122b
/// <reference path="../node_modules/@types/jasmine/index.d.ts" />
import { Result } from "../src/base";
import { RegimeUniforme } from "../src/regime_uniforme";
import { ParamsSectionRectang, cSnRectang } from "../src/section/section_rectang";
import { precDigits, precDist } from "./nubtest";
describe('Class RegimeUniforme / section rectangulaire :', () => {
describe('pas de débordement : ', () => {
/**
* test de la largeur de fond (= largeur de berge pour le rectangulaire)
*/
it('LargeurBerge should be 2.5', () => {
let prms = new ParamsSectionRectang(0.8, // tirant d'eau
undefined, // largeur de fond
40, // Ks=Strickler
1.568, // 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 cSnRectang(undefined, prms, false);
let ru = new RegimeUniforme(sect, false);
expect(ru.Calc("LargeurBerge").vCalc).toBeCloseTo(2.5, precDigits);
});
it('Strickler should be 30.619', () => {
let prms = new ParamsSectionRectang(0.8, // tirant d'eau
2.5, // largeur de fond
undefined, // 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 cSnRectang(undefined, prms);
let ru = new RegimeUniforme(sect);
expect(ru.Calc("Ks", 1e-8).vCalc).toBeCloseTo(30.619, precDigits);
});
it('If should be 0.001', () => {
let prms = new ParamsSectionRectang(0.8, // tirant d'eau
2.5, // largeur de fond
40, // Ks=Strickler
1.568, // Q=Débit
undefined, // 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 cSnRectang(undefined, prms);
let ru = new RegimeUniforme(sect, false);
// nom variable à calculer, valeur de Ks
expect(ru.Calc("If", 0, precDist).vCalc).toBeCloseTo(0.001, precDigits);
});
it('Q should be 1.568', () => {
let prms = new ParamsSectionRectang(0.8, // tirant d'eau
2.5, // largeur de fond
40, // Ks=Strickler
undefined, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
1 // YB=hauteur de berge
// YCL=Condition limite en cote à l'amont ou à l'aval
);
let sect = new cSnRectang(undefined, prms);
let ru = new RegimeUniforme(sect);
expect(ru.Calc("Q").vCalc).toBeCloseTo(1.568, precDigits);
});
it('Q should be 0.731', () => {
let prms = new ParamsSectionRectang(1.1, // tirant d'eau
3, // largeur de fond
30, // Ks=Strickler
undefined, // Q=Débit
0.0001, // If=pente du fond
precDist, // précision
1.2 // YB=hauteur de berge
// YCL=Condition limite en cote à l'amont ou à l'aval
);
let sect = new cSnRectang(undefined, prms);
let ru = new RegimeUniforme(sect);
expect(ru.Calc("Q").vCalc).toBeCloseTo(0.731, precDigits);
});
it('Y should be 0.663', () => {
let prms = new ParamsSectionRectang(undefined, // tirant d'eau
2.5, // largeur de fond
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 cSnRectang(undefined, prms);
let ru = new RegimeUniforme(sect);
// nom variable à calculer, valeur de Ks
expect(ru.Calc("Y").vCalc).toBeCloseTo(0.663, precDigits);
});
});
describe('débordement : ', () => {
/**
* test de la largeur de fond (= largeur de berge pour le rectangulaire)
*/
it('LargeurBerge should be 2.5', () => {
let prms = new ParamsSectionRectang(2, // tirant d'eau
undefined, // largeur de fond
40, // Ks=Strickler
5.31, // 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 cSnRectang(undefined, prms, false);
let ru = new RegimeUniforme(sect, false);
expect(ru.Calc("LargeurBerge").vCalc).toBeCloseTo(2.5, precDigits);
});
it('Strickler should be 9.041', () => {
let prms = new ParamsSectionRectang(2, // tirant d'eau
2.5, // largeur de fond
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
undefined, // 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 cSnRectang(undefined, prms);
let ru = new RegimeUniforme(sect);
expect(ru.Calc("Ks", 1e-8).vCalc).toBeCloseTo(9.041, precDigits);
});
it('If should be 0.001', () => {
let prms = new ParamsSectionRectang(2, // tirant d'eau
2.5, // largeur de fond
9.04, // Ks=Strickler
1.2, // Q=Débit
undefined, // 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 cSnRectang(undefined, prms);
let ru = new RegimeUniforme(sect, false);
// nom variable à calculer, valeur de Ks
expect(ru.Calc("If", 0, precDist).vCalc).toBeCloseTo(0.001, precDigits);
});
it('Q should be 5.31', () => {
let prms = new ParamsSectionRectang(2, // tirant d'eau
2.5, // largeur de fond
40, // Ks=Strickler
undefined, // 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 cSnRectang(undefined, prms);
let ru = new RegimeUniforme(sect);
expect(ru.Calc("Q").vCalc).toBeCloseTo(5.31, precDigits);
});
it('Q should be 1.624', () => {
let prms = new ParamsSectionRectang(2, // tirant d'eau
3, // largeur de fond
30, // Ks=Strickler
undefined, // Q=Débit
0.0001, // If=pente du fond
precDist, // précision
1.2 // YB=hauteur de berge
// YCL=Condition limite en cote à l'amont ou à l'aval
);
let sect = new cSnRectang(undefined, prms);
let ru = new RegimeUniforme(sect);
expect(ru.Calc("Q").vCalc).toBeCloseTo(1.624, precDigits);
});
it('Y should be 0.663', () => {
let prms = new ParamsSectionRectang(undefined, // tirant d'eau
2.5, // largeur de fond
40, // Ks=Strickler