-
Mathias Chouet authored953c71c8
// tslint:disable-next-line:max-line-length
import { CourbeRemous, CourbeRemousParams, cSnRectang, MethodeResolution, ParamsSectionRectang, Result } from "../../src";
/**
* IMPORTANT !
* Décommenter temporairement la ligne suivante (import { } from "./mock_jasmine")
* Pour exécuter ce code dans le débugger.
* Faire de même avec le fichier test_func.ts
*/
// import { describe, expect, it, xdescribe, xit } from "../mock_jasmine";
describe("référence d'un paramètre à un résultat complémentaire multivalué : ", () => {
it("test 1", () => {
// cas de figure :
// courbe de remous / section rectangulaire, méthode Euler explicite,
// faible pente, pas de ressaut, Yamont > Yc, Yaval > Yn
// on itère sur la courbe fluviale
const prms = new ParamsSectionRectang(undefined, // tirant d'eau
2.5, // largeur de fond
40, // Ks=Strickler
2, // Q=Débit
0.001, // If=pente du fond
0.001, // précision
1 // YB=hauteur de berge
);
const sect = new cSnRectang(prms);
const prem = new CourbeRemousParams(sect, 0.5, // Yamont = tirant amont
1, // Yaval = tirant aval
100, // Long= Longueur du bief
5, // Dx=Pas d'espace
MethodeResolution.EulerExplicite
);
const rem = new CourbeRemous(prem);
const res: Result = rem.calculRemous(undefined);
// données de validation : version Typescript (Oct 2017) méthode des trapèzes
const f = [0.9872500000000014, 0.9872500000000014, 0.9872500000000014,
0.9872500000000014, 0.9880000000000013, 0.9887500000000012,
0.9895000000000012, 0.9902500000000011, 0.991000000000001,
0.9917500000000009, 0.9925000000000008, 0.9932500000000007,
0.9940000000000007, 0.9947500000000006, 0.9955000000000005,
0.9962500000000004, 0.9970000000000003, 0.9977500000000002,
0.9985000000000002, 0.9992500000000001, 1];
const vs = rem.getLinkableValues("flu");
expect(Object.keys(vs).length).toEqual(1);
const vs2 = vs[0].value;
expect(vs2.name).toEqual("flu");
let i = 0;
for (const v of vs2.valuesIterator) {
expect(f[i]).toBeDefined();
expect(Math.abs(v - f[i++]) < 0.01).toBeTruthy();
}
});
});