An error occurred while loading the file. Please try again.
-
Mathias Chouet authored
merged cParamsCanal and ParamsSection Structures are now only defined by their LoiDebit (no more StructureType) Session : fixed serialization of lately registered Nubs Sections are now defined by a CalculatorType and a NodeType fixed bug in findFirstSingleParameter added tests for session serialisation
7b6e5403
import { cSnTrapez, LinkedValue, Nub, ParallelStructure, ParallelStructureParams,
ParamsSectionTrapez, ParamValueMode, SectionParametree, Session } from "../../src/index";
import { RegimeUniforme } from "../../src/regime_uniforme";
import { cSnCirc, ParamsSectionCirc } from "../../src/section/section_circulaire";
import { Cloisons } from "../../src/structure/cloisons";
import { CloisonsParams } from "../../src/structure/cloisons_params";
import { Dever, DeverParams } from "../../src/structure/dever";
import { CreateStructure } from "../../src/structure/factory_structure";
import { LoiDebit } from "../../src/structure/structure_props";
/**
* 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";
let nub1: RegimeUniforme;
let prm1: ParamsSectionCirc;
let nub2: ParallelStructure;
let prm2: ParallelStructureParams;
let nub3: Cloisons;
let prm3: CloisonsParams;
let nub4: Dever;
let prm4: DeverParams;
let nub5: Dever;
let prm5: DeverParams;
let nub6: SectionParametree;
let prm6: ParamsSectionTrapez;
/**
* crée l'environnement de test.
* répété à chaque test car il manque un mock de beforeEach
*/
function createEnv() {
// Nub 1 : Régime Uniforme
const paramSect = new ParamsSectionCirc(2, 0.6613, 40, 1.2, 0.001, 1);
paramSect.Pr.v = 0.01;
const sect = new cSnCirc(paramSect);
nub1 = new RegimeUniforme(sect);
prm1 = nub1.section.prms as ParamsSectionCirc;
// Nub 2 : Lois d'ouvrages
prm2 = new ParallelStructureParams(0.5, 102, 101.5);
prm2.Pr.v = 0.01;
nub2 = new ParallelStructure(prm2);
nub2.addChild(
CreateStructure(
LoiDebit.Cunge80,
nub2
)
);
nub2.addChild(
CreateStructure(
LoiDebit.TriangularWeirFree,
nub2
)
);
// Nub 3 : Passe à Bassin : Cloisons
prm3 = new CloisonsParams(1.5, 102, 10, 1, 1, 0.5);
nub3 = new Cloisons(prm3);
nub3.addChild(
CreateStructure(
LoiDebit.OrificeSubmerged,
nub3
)
);
nub3.addChild(
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
CreateStructure(
LoiDebit.KIVI,
nub3
)
);
// Nub 4 : Lois de déversoirs Dénoyés
prm4 = new DeverParams(0.5, 102, 10, 99);
prm4.Pr.v = 0.01;
nub4 = new Dever(prm4);
nub4.addChild(
CreateStructure(
LoiDebit.WeirFree,
nub4,
false
)
);
nub4.addChild(
CreateStructure(
LoiDebit.TriangularTruncWeirFree,
nub4,
false
)
);
// Nub 5 : Lois de déversoirs Dénoyés (2)
prm5 = new DeverParams(0.5, 102, 10, 99);
prm5.Pr.v = 0.01;
nub5 = new Dever(prm5);
nub5.addChild(
CreateStructure(
LoiDebit.WeirFree,
nub5,
false
)
);
nub5.addChild(
CreateStructure(
LoiDebit.TriangularTruncWeirFree,
nub5,
false
)
);
// Nub 6 : Section Paramétrée
prm6 = new ParamsSectionTrapez(1, 0.5, 1, 0.01, 1, 0.01, 2);
prm6.Pr.v = 0.01;
nub6 = new SectionParametree(new cSnTrapez(prm6));
const prm7 = nub6.prms as ParamsSectionTrapez;
// populate Session (for links)
Session.getInstance().clear();
Session.getInstance().registerNub(nub1);
Session.getInstance().registerNub(nub2);
Session.getInstance().registerNub(nub3);
Session.getInstance().registerNub(nub4);
Session.getInstance().registerNub(nub5);
Session.getInstance().registerNub(nub6);
}
/**
* Check that nub has :
* - exactly 1 parameter in CALC mode
* - a defined calculatedParam
* - at most 1 parameter in MINMAX / LISTE mode
* - a valid result after calculation
*/
function checkConsistency(nubToCheck: Nub) {
expect(nubToCheck.calculatedParam).toBeDefined();
let calcCount = 0;