An error occurred while loading the file. Please try again.
-
Dorchies David authored
#38 Correction pour tests unitaires suite au changement d'initialisation de la dichotomie dans 99b9bef6
5499450d
/**
* 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 } from "../mock_jasmine";
import { ParamCalculability, ParamDefinition, ParamsEquation } from "../../src/param";
import { CreateStructure, StructureType } from "../../src/structure/factory_structure";
import { ParallelStructure } from "../../src/structure/parallel_structure";
import { ParallelStructureParams } from "../../src/structure/parallel_structure_params";
import { Structure } from "../../src/structure/structure";
import { Describer } from "../../src/util/describer";
import { EnumEx } from "../../src/util/enum";
import { Result } from "../../src/util/result";
import { checkResult } from "../test_func";
import { structTest } from "./structure_test";
const pstruct: ParallelStructure = new ParallelStructure(
new ParallelStructureParams(30, 30, 15), // Q = 30, Z1 = 30, Z2 = 15
false // debug
);
/*
* Tests avec deux structures test identiques
*/
pstruct.addStructure(structTest);
pstruct.addStructure(structTest);
describe("Class ParallelStructure: ", () => {
describe("Calc()", () => {
itParallelStructure("Q", 30, 15);
itParallelStructure("Z1", 30, 15);
itParallelStructure("Z2", 15, 15);
});
});
/**
* Test sur ParallelStructure
* @param sVarCalc Variable à calculer
* @param rVcalc Valeur de référence à retrouver
* @param Q Débit de chacune des structures (pour structures identiques uniquement)
*/
function itParallelStructure(sVarCalc: string, rVcalc: number, Q?: number) {
it(`${sVarCalc} should be ${rVcalc}`, () => {
const res: Result = pstruct.Calc(sVarCalc);
checkResult(res, rVcalc);
if (Q !== undefined) {
for (let i = 1 ; i < res.nbResults ; i++) {
checkResult(res.extractResult(i), Q);
}
}
});
}
/*
* Tests avec toutes les équations et toutes les variables (cf. jalhyd#38)
*/
const ps2: ParallelStructure = new ParallelStructure(
new ParallelStructureParams(0, 102, 101.5), // Q = 0, Z1 = 102, Z2 = 101.5
false // debug
);
// Ajout d'une structure de chaque type dans ParallelStructure
for (const i of EnumEx.getValues(StructureType)) {
ps2.addStructure(CreateStructure(i));
}
7172737475767778798081828384858687888990919293949596979899100
ps2.prms.Q.v = ps2.Calc("Q").vCalc;
// tslint:disable-next-line:prefer-for-of
describe("Class ParallelStructure: ", () => {
for (let i = 0 ; i < ps2.structures.length ; i++) {
const st: Structure = ps2.structures[i];
describe(`this.structures[${i}]: Structure${StructureType[i]}: `, () => {
// tslint:disable-next-line:forin
for (const prm of st.prms) {
if (prm.calculability === ParamCalculability.DICHO &&
prm.symbol !== "Z1" && prm.symbol !== "Z2") {
const ref: number = prm.v;
const res: Result = ps2.Calc(i + "." + prm.symbol);
prm.v = ref; // Go back to initial value for following tests
if ((i === 2 || i === 4) && prm.symbol === "ZDV") {
xit(`Calc(${prm.symbol}) should return ${ref}`, () => {
checkResult(res, ref);
});
} else {
it(`Calc(${prm.symbol}) should return ${ref}`, () => {
checkResult(res, ref);
});
}
}
}
});
}
});