From 513db2cc7cae71bccc5ec239cda16d7d34837dcb Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Mon, 8 Jul 2019 14:26:01 +0200 Subject: [PATCH] Fix #108, added spec --- spec/pab/pab.spec.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ src/nub.ts | 2 +- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/spec/pab/pab.spec.ts b/spec/pab/pab.spec.ts index 77e42a14..c08f561d 100644 --- a/spec/pab/pab.spec.ts +++ b/spec/pab/pab.spec.ts @@ -6,6 +6,7 @@ */ // import { describe, expect, it, xdescribe, xit } from "../mock_jasmine"; +import { ParamValueMode, Session } from "../../src/index"; import { CloisonAval } from "../../src/pab/cloison_aval"; import { Cloisons, CloisonsParams } from "../../src/pab/cloisons"; import { Pab, PabParams } from "../../src/pab/pab"; @@ -223,4 +224,45 @@ describe("Class Pab: ", () => { }); }); + fdescribe("calculated parameter should always be Q or Z1 - ", () => { + it("try setting Q and Z1 to SINGLE", () => { + pab.calculatedParam = pab.prms.Q; + pab.prms.Z1.valueMode = ParamValueMode.SINGLE; + expect(pab.calculatedParam.symbol).toBe("Q"); + pab.prms.Q.valueMode = ParamValueMode.SINGLE; + expect(pab.calculatedParam.symbol).toBe("Z1"); + }); + + it("try setting Q and Z1 to MINMAX", () => { + pab.calculatedParam = pab.prms.Q; + pab.prms.Z1.valueMode = ParamValueMode.MINMAX; + expect(pab.calculatedParam.symbol).toBe("Q"); + pab.prms.Q.valueMode = ParamValueMode.MINMAX; + expect(pab.calculatedParam.symbol).toBe("Z1"); + }); + + it("try setting Q and Z1 to MINMAX", () => { + pab.calculatedParam = pab.prms.Q; + pab.prms.Z1.valueMode = ParamValueMode.LISTE; + expect(pab.calculatedParam.symbol).toBe("Q"); + pab.prms.Q.valueMode = ParamValueMode.LISTE; + expect(pab.calculatedParam.symbol).toBe("Z1"); + }); + + it("try setting Q and Z1 to LINK", () => { + // clone PAB + const pab2 = createPabTest(); + Session.getInstance().clear(); + Session.getInstance().registerNub(pab); + Session.getInstance().registerNub(pab2); + // link + pab.prms.Z1.defineReference(pab2, "Z1"); + expect(pab.calculatedParam.symbol).toBe("Q"); + expect(pab.prms.Z1.valueMode).toBe(ParamValueMode.LINK); + pab.prms.Q.defineReference(pab2, "Q"); + expect(pab.calculatedParam.symbol).toBe("Z1"); + expect(pab.prms.Q.valueMode).toBe(ParamValueMode.LINK); + }); + }); + }); diff --git a/src/nub.ts b/src/nub.ts index c7226fd0..7cd3af94 100644 --- a/src/nub.ts +++ b/src/nub.ts @@ -513,7 +513,7 @@ export abstract class Nub extends ComputeNode implements IObservable { ) && (p.valueMode === ParamValueMode.CALCUL) ) { - // trick to expose p a a result of the parent Nub + // trick to expose p as a result of the parent Nub res.push(new LinkedValue(this.parent, p, p.symbol)); } else { // do not suggest parameters that are already linked to another one -- GitLab