Skip to content
Snippets Groups Projects
Commit 82ae2e74 authored by mathias.chouet's avatar mathias.chouet
Browse files

Added jalhyd tests for linked multiple variated params

parent 173ffdc8
No related branches found
No related tags found
No related merge requests found
import { CreateStructure, ExtensionStrategy, LoiDebit, ParallelStructure, ParallelStructureParams,
ParamValueMode, Structure} from "../../src/index";
ParamValueMode, Structure, Session} from "../../src/index";
import { RectangularStructureParams } from "../../src/structure/structure_cem88d";
let prms1: ParallelStructureParams;
let nub1: ParallelStructure;
let struct1: Structure;
let prmsStruct: RectangularStructureParams;
let prmsStruct1: RectangularStructureParams;
let prms2: ParallelStructureParams;
let nub2: ParallelStructure;
let struct2: Structure;
let prmsStruct2: RectangularStructureParams;
function createSingleNubEnv() {
prms1 = new ParallelStructureParams(0.5, 102, 101.5);
nub1 = new ParallelStructure(prms1);
struct1 = CreateStructure(LoiDebit.Cunge80, nub1);
prmsStruct = struct1.prms as RectangularStructureParams;
prmsStruct1 = struct1.prms as RectangularStructureParams;
nub1.addChild(struct1);
}
function createLinkedNubEnv() {
// TODO
prms1 = new ParallelStructureParams(0.5, 102, 101.5);
nub1 = new ParallelStructure(prms1);
struct1 = CreateStructure(LoiDebit.Cunge80, nub1);
prmsStruct1 = struct1.prms as RectangularStructureParams;
nub1.addChild(struct1);
prms2 = new ParallelStructureParams(0.5, 102, 101.5);
nub2 = new ParallelStructure(prms2);
struct2 = CreateStructure(LoiDebit.Cunge80, nub2);
prmsStruct2 = struct2.prms as RectangularStructureParams;
nub2.addChild(struct2);
Session.getInstance().clear();
Session.getInstance().registerNub(nub1);
Session.getInstance().registerNub(nub2);
prms2.Z1.defineReference(nub1, "Z1");
prmsStruct2.L.defineReference(struct1, "L");
}
/**
......@@ -52,11 +74,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues(100, 102, 0.5); // 5 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -67,11 +89,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues(100, 102, 0.5); // 5 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct.L.setValues(1.89, 2.1, 0.03); // 8 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues(1.89, 2.1, 0.03); // 8 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.MINMAX);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -82,11 +104,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues(100, 102, 0.1); // 21 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -97,11 +119,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues([ 100, 101, 102 ]); // 3 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -112,11 +134,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues([ 100, 100.3, 100.7, 101, 101.3, 101.7, 102, 102.3, 115 ]); // 9 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -127,11 +149,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues(100, 102, 0.5); // 5 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct.L.setValues(1.89, 2.15, 0.06); // 5 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues(1.89, 2.15, 0.06); // 5 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.MINMAX);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -175,11 +197,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues(100, 102, 0.5); // 5 values
prms1.Z1.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6]); // 9 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.RECYCLE;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -190,11 +212,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues(100, 102, 0.5); // 5 values
prms1.Z1.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct.L.setValues(1.89, 2.1, 0.03); // 8 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct1.L.setValues(1.89, 2.1, 0.03); // 8 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.RECYCLE;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.MINMAX);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -205,11 +227,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues(100, 102, 0.1); // 21 values
prms1.Z1.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.RECYCLE;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -220,11 +242,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues([ 100, 101, 102 ]); // 3 values
prms1.Z1.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.RECYCLE;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -235,11 +257,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues([ 100, 100.3, 100.7, 101, 101.3, 101.7, 102, 102.3, 115 ]); // 9 values
prms1.Z1.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.RECYCLE;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -250,11 +272,11 @@ describe("multiple variated parameters - ", () => {
createSingleNubEnv();
prms1.Z1.setValues(100, 102, 0.5); // 5 values
prms1.Z1.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct.L.setValues(1.89, 2.15, 0.06); // 5 values
prmsStruct.L.extensionStrategy = ExtensionStrategy.RECYCLE;
prmsStruct1.L.setValues(1.89, 2.15, 0.06); // 5 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.RECYCLE;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct.L.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.MINMAX);
// check that calculation works
const res = nub1.CalcSerie();
expect(res).toBeDefined();
......@@ -292,7 +314,128 @@ describe("multiple variated parameters - ", () => {
});
});
describe("on different linked Nubs - ", () => {
// TODO
describe("on different linked Nubs, with REPEAT_LAST strategy - ", () => {
it("test 1 : minmax < list", () => {
createLinkedNubEnv();
prms1.Z1.setValues(100, 102, 0.5); // 5 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub2.CalcSerie();
expect(res).toBeDefined();
expect(res.resultElements.length).toBe(9);
});
it("test 2 : minmax < minmax", () => {
createLinkedNubEnv();
prms1.Z1.setValues(100, 102, 0.5); // 5 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues(1.89, 2.1, 0.03); // 8 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.MINMAX);
// check that calculation works
const res = nub2.CalcSerie();
expect(res).toBeDefined();
expect(res.resultElements.length).toBe(8);
});
it("test 3 : list < minmax", () => {
createLinkedNubEnv();
prms1.Z1.setValues(100, 102, 0.1); // 21 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub2.CalcSerie();
expect(res).toBeDefined();
expect(res.resultElements.length).toBe(21);
});
it("test 4 : list < list", () => {
createLinkedNubEnv();
prms1.Z1.setValues([ 100, 101, 102 ]); // 3 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub2.CalcSerie();
expect(res).toBeDefined();
expect(res.resultElements.length).toBe(9);
});
it("test 5 : list = list", () => {
createLinkedNubEnv();
prms1.Z1.setValues([ 100, 100.3, 100.7, 101, 101.3, 101.7, 102, 102.3, 115 ]); // 9 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues([ 1.89, 1.91, 1.99, 2, 1.7, 2.1, 2.18, 2.23, 2.6 ]); // 9 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.LISTE);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.LISTE);
// check that calculation works
const res = nub2.CalcSerie();
expect(res).toBeDefined();
expect(res.resultElements.length).toBe(9);
});
it("test 6 : list = minmax", () => {
createLinkedNubEnv();
prms1.Z1.setValues(100, 102, 0.5); // 5 values
prms1.Z1.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
prmsStruct1.L.setValues(1.89, 2.15, 0.06); // 5 values
prmsStruct1.L.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
// check that both parameters are varying
expect(prms1.Z1.valueMode).toBe(ParamValueMode.MINMAX);
expect(prmsStruct1.L.valueMode).toBe(ParamValueMode.MINMAX);
// check that calculation works
const res = nub2.CalcSerie();
expect(res).toBeDefined();
expect(res.resultElements.length).toBe(5);
});
it("test 7 : all parameters varying with random lengths", () => {
createLinkedNubEnv();
let longest = 0;
let sparedParam = null;
// set all parameters to LIST mode with random length (except the first that has to stay in CALC mode)
for (const p of nub2.parameterIterator) {
if (p.visible) {
if (! sparedParam) {
sparedParam = p;
nub2.calculatedParam = p;
} else {
if (p.valueMode !== ParamValueMode.LINK) {
const rl = randomList(p.singleValue);
longest = Math.max(longest, rl.length);
p.setValues(rl);
p.extensionStrategy = ExtensionStrategy.REPEAT_LAST;
}
}
}
}
// check that all parameters are varying
for (const p of nub2.parameterIterator) {
if (p.visible && p !== sparedParam && p.valueMode !== ParamValueMode.LINK) {
expect(p.hasMultipleValues).toBe(true);
}
}
// check that calculation works and length of result is length of the longest values list
const res = nub2.CalcSerie();
expect(res).toBeDefined();
expect(res.resultElements.length).toBe(longest);
});
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment