regime_uniforme_rect.spec.ts 8.14 KiB
/// <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 { equalEpsilon, precDist } from "./nubtest";
function check(val1: Result, val2: number) {
    expect(equalEpsilon(val1.vCalc, val2)).toBeTruthy("expected " + val2 + ", got " + val1.vCalc);
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);
            check(ru.Calc("LargeurBerge"), 2.5);
        });
        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);
            check(ru.Calc("Ks", 1e-8), 30.619);
        });
        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
            check(ru.Calc("If", 0, precDist), 0.001);
        });
        it('Q should be 1.568', () => {
            let prms = new ParamsSectionRectang(0.8, // tirant d'eau
                2.5, // largeur de fond  
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
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); check(ru.Calc("Q"), 1.568); }); 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); check(ru.Calc("Q"), 0.731); }); 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 check(ru.Calc("Y"), 0.663); }); }); 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); check(ru.Calc("LargeurBerge"), 2.5); });
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
it('Strickler should be 9.041', () => { let prms = new ParamsSectionRectang(2, // 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); check(ru.Calc("Ks", 1e-8), 9.041); }); 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 check(ru.Calc("If", 0, precDist), 0.001); }); 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); check(ru.Calc("Q"), 5.31); }); 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); check(ru.Calc("Q"), 1.624); });
211212213214215216217218219220221222223224225226227228229230
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 0.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 check(ru.Calc("Y"), 0.663); }); }); });