An error occurred while loading the file. Please try again.
-
Guillaume Blanchy authoredba9c7073
import { CreateStructure, LoiDebit, ParallelStructure,
ParallelStructureParams, Session, Structure } from "../../src/index";
import { RectangularStructureParams } from "../../src/structure/structure_cem88d";
import { NubTest, NubTestParams } from "../nubtest";
/**
* 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, fail } from "../mock_jasmine";
let nub1: NubTest;
let nub2: NubTest;
let nub3: NubTest;
let prm1: NubTestParams;
let prm2: NubTestParams;
let prm3: NubTestParams;
/**
* crée l'environnement de test.
* répété à chaque test car il manque un mock de beforeEach
*/
function createEnv() {
nub1 = new NubTest(new NubTestParams());
prm1 = nub1.prms as NubTestParams;
nub2 = new NubTest(new NubTestParams());
prm2 = nub2.prms as NubTestParams;
nub3 = new NubTest(new NubTestParams());
prm3 = nub3.prms as NubTestParams;
Session.getInstance().clear();
Session.getInstance().registerNub(nub1);
Session.getInstance().registerNub(nub2);
Session.getInstance().registerNub(nub3);
}
describe("référence d'un paramètre à un autre : ", () => {
describe("vérification des références circulaires : ", () => {
it("test 1", () => {
// cas de figure (ne doit pas échouer) :
// nub2.A référence nub1.A
createEnv();
try {
prm2.A.defineReference(nub1, "A"); // ne doit pas échouer
} catch (e) {
fail();
}
});
it("test 2", () => {
// cas de figure (ne doit pas échouer) :
// nub1.A référence nub2.A qui référence nub3.A
createEnv();
try {
prm1.A.defineReference(nub2, "A");
prm2.A.defineReference(nub3, "A");
} catch (e) {
fail();
}
});
it("test 3", () => {
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
// cas de figure (doit échouer) :
// nub2.A référence nub1.A qui référence nub2.A
createEnv();
try {
prm2.A.defineReference(nub1, "A"); // ne doit pas échouer
prm1.A.defineReference(nub2, "A"); // doit échouer
fail();
// tslint:disable-next-line:no-empty
} catch (e) {}
});
it("test 4", () => {
// cas de figure (doit échouer) :
// param1 référence param2 (OK)
// param3 référence param1 (OK)
// param2 référence param3 (doit échouer)
createEnv();
try {
prm1.A.defineReference(nub2, "A"); // ne doit pas échouer
prm3.A.defineReference(nub2, "A"); // ne doit pas échouer
} catch (e) {
fail();
}
try {
prm2.A.defineReference(nub3, "A"); // doit échouer
fail();
// tslint:disable-next-line:no-empty
} catch (e) { }
});
it("test 5 : ouvrages en parallèle", () => {
// cas de figure :
// - le param. de l'ouvrage 2 référence le param. de l'ouvrage 1 (ne doit pas échouer)
// - le param. de l'ouvrage 2 référence le param. en calcul de l'ouvrage 1,
// via le résultat du Nub ParallelStructure (doit échouer)
const psp: ParallelStructureParams = new ParallelStructureParams(1, 2, 3);
const pst = new ParallelStructure(psp);
const st1: Structure = CreateStructure(LoiDebit.WeirCem88d, pst);
pst.addChild(st1);
const prmS1 = (st1.prms as RectangularStructureParams);
const st2: Structure = CreateStructure(LoiDebit.WeirCem88d, pst);
const prmS2 = (st2.prms as RectangularStructureParams);
pst.addChild(st2);
pst.calculatedParam = prmS1.L;
Session.getInstance().clear();
Session.getInstance().registerNub(pst);
try {
prmS2.W.defineReference(st1, "W"); // ne doit pas échouer
} catch (e) {
fail();
}
try {
prmS2.L.defineReference(pst, "L"); // doit échouer
fail();
// tslint:disable-next-line:no-empty
} catch (e) { }
});
});
});