value_ref_section.spec.ts 1.90 KiB
import { CreateStructure, cSnTrapez, LoiDebit, ParamsSectionTrapez, StructureType, Session } from "../../src";
import { SectionParametree } from "../../src/section/section_parametree";
import { Dever, DeverParams } from "../../src/structure/dever";
/**
 * 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: Dever;
let nub2: SectionParametree;
let prm2: ParamsSectionTrapez;
/**
 * crée l'environnement de test.
 * répété à chaque test car il manque un mock de beforeEach
function createEnv() {
    // Nub maître
    const prms1 = new DeverParams(0.5, 102, 10, 99);
    prms1.Pr.v = 0.01;
    nub1 = new Dever(prms1);
    nub1.addStructure(
        CreateStructure(
            StructureType.SeuilRectangulaire,
            LoiDebit.WeirFree,
            nub1,
            false
    // Nub esclave
    const prmsS = new ParamsSectionTrapez(1, 0.5, 1, 0.01, 1, 0.01, 2);
    prmsS.Pr.v = 0.01;
    nub2 = new SectionParametree(new cSnTrapez(prmsS));
    prm2 = nub2.prms as ParamsSectionTrapez;
    Session.getInstance().clear();
    Session.getInstance().registerNub(nub1);
    Session.getInstance().registerNub(nub2);
describe("référence d'un paramètre à un autre : ", () => {
    describe("résultat complémentaire : ", () => {
        it("test 1", () => {
            // cas de figure :
            // nub2.Q est lié au résultat complémentaire CvQT de nub1
            // lecture de nub2.Q
            createEnv();
            prm2.Q.v = 0;  // valeur esclave, doit être masquée par la valeur maître (cad prm1.CvQT)
            prm2.Q.defineReference(nub1, "CvQT");
            nub2.CalcSerie();
            expect(prm2.Q.v).toBeCloseTo(10.106);
        });
    });
});