-
Dorchies David authored
Corrections pour le libellé de la variable extra des courbes de remous suite à b2b64ff29f025 dans ngHyd
c2a047ee
/**
* 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";
import { CourbeRemous, CourbeRemousParams, MethodeResolution } from "../../src/remous";
import { cSnTrapez, ParamsSectionTrapez } from "../../src/section/section_trapez";
import { cLog } from "../../src/util/log";
import { precDist } from "../test_config";
import { compareExtraResult, equalEpsilon } from "../test_func";
/*
Certaines valeurs de ligne d'eau torrentielle étaient auparavant remplacées par une valeur fluviale
pour la représentation graphique du ressaut (mais fausse car torrentielle).
Idem pour la réciproque fluvial/torrentiel.
Le code ne faisant plus ça, les valeurs de validation ont été remplacée par les bonnes.
*/
describe("Class Remous / section trapèze :", () => {
describe("méthode trapèzes :", () => {
xit("pente faible, fluvial hauteur normale, ", () => {
const prms = new ParamsSectionTrapez(2.5, // largeur de fond
0.56, // fruit
undefined, // tirant d'eau
40, // Ks=Strickler
2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1, // YB= hauteur de berge
);
const sect = new cSnTrapez(prms);
const prem = new CourbeRemousParams(sect, 0.15, // Yamont = tirant amont
0.803, // Yaval = tirant aval
5, // Long= Longueur du bief
5, // Dx=Pas d'espace
MethodeResolution.Trapezes,
);
const rem = new CourbeRemous(prem);
const res = rem.calculRemous(undefined);
const t = { 0: 0.15 };
compareExtraResult("YTorrentiel", res, "tor", t, 0.001);
const f = { 5: 0.803 };
compareExtraResult("Yfluvial", res, "flu", f, 0.001);
});
xit("pente faible, ressaut dans le bief sur plusieurs points", () => {
// désactivé car échoue depuis les modifs apportées depuis la version PHP (calcul du ressaut hydraulique)
const prms = new ParamsSectionTrapez(2.5, // largeur de fond
0.56, // fruit
undefined, // tirant d'eau
40, // Ks=Strickler
2, // Q=Débit
0.001, // If=pente du fond
precDist, // précision
1, // YB= hauteur de berge
);
const sect = new cSnTrapez(prms);
const prem = new CourbeRemousParams(sect, 0.15, // Yamont = tirant amont
0.4, // Yaval = tirant aval
10, // Long= Longueur du bief
1, // Dx=Pas d'espace
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
MethodeResolution.Trapezes,
);
const rem = new CourbeRemous(prem);
const res = rem.calculRemous(undefined);
const f = { 9: 0.278, 10: 0.4 };
// compareObject("Yfluvial", res.getExtraResult("flu"), f, 0.002);
compareExtraResult("Yfluvial", res, "flu", f, 0.002);
// let t = { 0.000: 0.15, 1.000: 0.16369914454109, 2.000: 0.17743613485223, 3.000: 0.19117312516337, 4.000: 0.20491011547451, 5.000: 0.21864710578565, 6.000: 0.23238409609679, 7.000: 0.24688425253633, 8.000: 0.26214757510426, 9.000: 0.27817406380059, 10.000: 0.4 };
const t = { 0.000: 0.15, 1.000: 0.16369914454109, 2.000: 0.17743613485223, 3.000: 0.19117312516337, 4.000: 0.20491011547451, 5.000: 0.21864710578565, 6.000: 0.23238409609679, 7.000: 0.24688425253633, 8.000: 0.26214757510426, 9.000: 0.27817406380059, 10.000: 0.293 }; // dernière valeur modifiée pour la raison en tête de fichier
// compareObject("Ytorrentiel", res.getExtraResult("tor"), t, 0.002);
compareExtraResult("Ytorrentiel", res, "tor", t, 0.002);
// const x = [0.000, 1.000, 2.000, 3.000, 4.000, 5.000, 6.000, 7.000, 8.000, 9.000, 10.000];
// compareArray("abcisses", res.getExtraResult("trX"), x);
});
// it('pente forte, ressaut dans le bief sur plusieurs points', () => {
// let prms = new ParamsSectionTrapez(2.5, // largeur de fond
// 0.56, // fruit
// undefined, // tirant d'eau
// 40, // Ks=Strickler
// 2, // Q=Débit
// 0.05, // If=pente du fond
// precDist, // précision
// 1 // YB= hauteur de berge
// );
// let sect = new cSnTrapez(prms);
// let prem = new CourbeRemousParams(sect,
// 0.15, // Yamont = tirant amont
// 1, // Yaval = tirant aval
// 8, // Long= Longueur du bief
// 0.1, // Dx=Pas d'espace
// MethodeResolution.Trapezes
// );
// let rem = new CourbeRemous(prem);
// let res = rem.calculRemous(undefined);
// let f = { 8.000: 1, 7.900: 0.995, 7.800: 0.989, 7.700: 0.984, 7.600: 0.978, 7.500: 0.973, 7.400: 0.967, 7.300: 0.962, 7.200: 0.956, 7.100: 0.951, 7.000: 0.945, 6.900: 0.94, 6.800: 0.934, 6.700: 0.929, 6.600: 0.923, 6.500: 0.918, 6.400: 0.912, 6.300: 0.907, 6.200: 0.901, 6.100: 0.896, 6.000: 0.89, 5.900: 0.885, 5.800: 0.879, 5.700: 0.874, 5.600: 0.868, 5.500: 0.863, 5.400: 0.857, 5.300: 0.852, 5.200: 0.846, 5.100: 0.841, 5.000: 0.835, 4.900: 0.83, 4.800: 0.824, 4.700: 0.819, 4.600: 0.813, 4.500: 0.808, 4.400: 0.802, 4.300: 0.797, 4.200: 0.791, 4.100: 0.786, 4.000: 0.78, 3.900: 0.775, 3.800: 0.769, 3.700: 0.764, 3.600: 0.758, 3.500: 0.753, 3.400: 0.747, 3.300: 0.742, 3.200: 0.737, 3.100: 0.731, 3.000: 0.726, 2.900: 0.72, 2.800: 0.715, 2.700: 0.709, 2.600: 0.704, 2.500: 0.698, 2.400: 0.693, 2.300: 0.686, 2.200: 0.68, 2.100: 0.674, 2.000: 0.668, 1.900: 0.662, 1.800: 0.656, 1.700: 0.65, 1.600: 0.644, 1.500: 0.638, 1.400: 0.632, 1.300: 0.625, 1.200: 0.619, 1.100: 0.613, 1.000: 0.607, 0.900: 0.601, 0.800: 0.594, 0.700: 0.588, 0.600: 0.581, 0.500: 0.574, 0.400: 0.567, 0.300: 0.561, 0.200: 0.554, 0.100: 0.547, 0.000: 0.15 };
// compareObject("Yfluvial", res["flu"], f, 0.011);
// let t = { 0.000: 0.15, 0.100: 0.151, 0.200: 0.151, 0.300: 0.152, 0.400: 0.153, 0.500: 0.154, 0.600: 0.155, 0.700: 0.155, 0.800: 0.156, 0.900: 0.157, 1.000: 0.158, 1.100: 0.158, 1.200: 0.159, 1.300: 0.16, 1.400: 0.161, 1.500: 0.161, 1.600: 0.162, 1.700: 0.163, 1.800: 0.164, 1.900: 0.164, 2.000: 0.165, 2.100: 0.166, 2.200: 0.167, 2.300: 0.168, 2.400: 0.168, 2.500: 0.698, 2.6: 0.709500000000002 };
// compareObject("Ytorrentiel", res["tor"], t, 0.004);
// let x = [0.000, 0.100, 0.200, 0.300, 0.400, 0.500, 0.600, 0.700, 0.800, 0.900, 1.000, 1.100, 1.200, 1.300, 1.400, 1.500, 1.600, 1.700, 1.800, 1.900, 2.000, 2.100, 2.200, 2.300, 2.400, 2.500, 2.600, 2.700, 2.800, 2.900, 3.000, 3.100, 3.200, 3.300, 3.400, 3.500, 3.600, 3.700, 3.800, 3.900, 4.000, 4.100, 4.200, 4.300, 4.400, 4.500, 4.600, 4.700, 4.800, 4.900, 5.000, 5.100, 5.200, 5.300, 5.400, 5.500, 5.600, 5.700, 5.800, 5.900, 6.000, 6.100, 6.200, 6.300, 6.400, 6.500, 6.600, 6.700, 6.800, 6.900, 7.000, 7.100, 7.200, 7.300, 7.400, 7.500, 7.600, 7.700, 7.800, 7.900, 8.000];
// compareArray("abcisses", res["trX"], x);
// });
});
describe("paramètre à calculer :", () => {
// désactivé suite au changement de format de résultat
it("Hs (test 1)", () => {
const prms = new ParamsSectionTrapez(
2.5, // largeur de fond
0.56, // fruit
undefined, // tirant d'eau
40, // Ks=Strickler
2, // Q=Débit
0.001, // If=pente du fond
0.001, // précision
1, // YB=hauteur de berge
);
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
const sect = new cSnTrapez(prms);
const prem = new CourbeRemousParams(sect, 0.15, // Yamont = tirant amont
0.4, // Yaval = tirant aval
100, // Long= Longueur du bief
5, // Dx=Pas d'espace
MethodeResolution.Trapezes,
);
const rem = new CourbeRemous(prem);
const res = rem.calculRemous("Hs");
// données de validation : version PHP (oct 2017)
const hs = { 0.000: 1.507, 5.000: 0.735, 10.000: 0.731, 15.000: 0.727, 20.000: 0.723, 25.000: 0.719, 30.000: 0.715, 35.000: 0.71, 40.000: 0.704, 45.000: 0.699, 50.000: 0.693, 55.000: 0.687, 60.000: 0.68, 65.000: 0.673, 70.000: 0.665, 75.000: 0.656, 80.000: 0.646, 85.000: 0.634, 90.000: 0.62, 95.000: 0.603, 100.000: 0.572 };
// compareObject("Hs", res.getExtraResult("Hs"), hs, 0.002);
compareExtraResult("Hs", res, "Hs", hs, 0.002);
});
xit("Hs (test 2)", () => { // désactivé car échoue depuis les modifs apportées depuis la version PHP (calcul du ressaut hydraulique)
const prms = new ParamsSectionTrapez(
2.5, // largeur de fond
0.56, // fruit
undefined, // tirant d'eau
40, // Ks=Strickler
2, // Q=Débit
0.05, // If=pente du fond
0.001, // précision
1, // YB=hauteur de berge
);
const sect = new cSnTrapez(prms);
const prem = new CourbeRemousParams(sect, 0.15, // Yamont = tirant amont
1, // Yaval = tirant aval
8, // Long= Longueur du bief
0.1, // Dx=Pas d'espace
MethodeResolution.Trapezes,
);
const rem = new CourbeRemous(prem);
const res = rem.calculRemous("Hs");
// données de validation : version PHP (oct 2017)
// ici j'ai supprimé un point (x=2.5)
const hs = { 0.000: 1.507, 2.600: 0.753, 2.700: 0.757, 2.800: 0.762, 2.900: 0.767, 3.000: 0.771, 3.100: 0.776, 3.200: 0.781, 3.300: 0.786, 3.400: 0.79, 3.500: 0.795, 3.600: 0.8, 3.700: 0.805, 3.800: 0.81, 3.900: 0.814, 4.000: 0.819, 4.100: 0.824, 4.200: 0.829, 4.300: 0.834, 4.400: 0.839, 4.500: 0.844, 4.600: 0.849, 4.700: 0.854, 4.800: 0.859, 4.900: 0.864, 5.000: 0.869, 5.100: 0.874, 5.200: 0.879, 5.300: 0.884, 5.400: 0.889, 5.500: 0.894, 5.600: 0.899, 5.700: 0.904, 5.800: 0.909, 5.900: 0.914, 6.000: 0.919, 6.100: 0.924, 6.200: 0.929, 6.300: 0.934, 6.400: 0.939, 6.500: 0.944, 6.600: 0.95, 6.700: 0.955, 6.800: 0.96, 6.900: 0.965, 7.000: 0.97, 7.100: 0.975, 7.200: 0.98, 7.300: 0.986, 7.400: 0.991, 7.500: 0.996, 7.600: 1.001, 7.700: 1.006, 7.800: 1.012, 7.900: 1.017, 8.000: 1.022 };
// compareObject("Hs", res.getExtraResult("Hs"), hs, 0.009);
compareExtraResult("Hs", res, "Hs", hs, 0.009);
});
});
});