value_ref_variable_result.spec.ts 2.75 KiB
import { ConduiteDistrib, ConduiteDistribParams } from "../../src/cond_distri";
import { Result } from "../../src/util/result";
import { Session } from "../../src/index";
/**
 * 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: ConduiteDistrib;
let nub2: ConduiteDistrib;
let prm1: ConduiteDistribParams;
let prm2: ConduiteDistribParams;
/**
 * crée l'environnement de test.
 * répété à chaque test car il manque un mock de beforeEach
function createEnv() {
    // Nub maître
    nub1 = new ConduiteDistrib(new ConduiteDistribParams(3, 1.2, 0.6, 100, 0.000001));
    prm1 = nub1.prms as ConduiteDistribParams;
    // Nub esclave
    nub2 = new ConduiteDistrib(new ConduiteDistribParams(3, 1.2, 0.6, 100, 0.000001));
    prm2 = nub2.prms as ConduiteDistribParams;
    Session.getInstance().clear();
    Session.getInstance().registerNub(nub1);
    Session.getInstance().registerNub(nub2);
describe("référence d'un paramètre à un résultat : ", () => {
    it("ConduiteDistri Q fixe => Calc(J) => Importe(J) => Calc(Q)", () => {
        // cas de figure :
        // nub2.Q est lié au résultat J de nub1
        // lecture de nub2.Q
        createEnv();
        prm1.Q.v = 2;
        nub1.calculatedParam = prm1.J;
        nub1.prms.Pr.v = 0.001;
        const res1: Result = nub1.CalcSerie(0.6);
        expect(res1.resultElements.length).toEqual(1); // nombre de valeurs du Result
        prm2.J.defineReference(nub1, "J");
        nub2.prms.Pr.v = 0.001;
        nub2.calculatedParam = prm2.Q;
        const res2 = nub2.CalcSerie(0.6);
        expect(res2.resultElements.length).toEqual(1);  // nombre de valeurs du Result
        expect(res2.vCalc).toBeCloseTo(prm1.Q.v, 3);
    });
    it("ConduiteDistri Q varie => Calc(J) => Importe(J) => Calc(Q)", () => {
        // cas de figure :
        // nub2.Q est lié au résultat J de nub1
        // lecture de nub2.Q
        createEnv();
        prm1.Q.setValues(1.5, 6, 0.5);
        nub1.calculatedParam = prm1.J;
        prm1.Pr.v = 0.001;
71727374757677787980818283848586878889
const res1: Result = nub1.CalcSerie(0.6); prm2.J.defineReference(nub1, "J"); prm2.Pr.v = 0.001; nub2.calculatedParam = prm2.Q; const res2 = nub2.CalcSerie(0.6); expect(res1.resultElements.length).toEqual(10); // nombre de valeurs du Result expect(res2.resultElements.length).toEqual(10); let QREF = prm1.Q.paramValues.min; for (const re of res2.resultElements) { expect(re.vCalc).toBeCloseTo(QREF, 0.001); QREF += prm1.Q.paramValues.step; } }); });