Skip to content

Commit 63c066a

Browse files
committed
tests-related improvements
1 parent 678adae commit 63c066a

File tree

6 files changed

+59
-31
lines changed

6 files changed

+59
-31
lines changed

test/custom/simplificationAlgorithms.customTest.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
*/
88

99
import { Block } from "../../model/elements/block.js";
10+
import { getTopBlock, setTopBlock } from "../../model/topBlockService.js";
1011
import {
1112
animationSpeedCoeff,
1213
setAnimationSpeedCoeff,
@@ -18,14 +19,16 @@ import {
1819
import { logMessages } from "../../util/loggingService.js";
1920
import { simplificationAlgorithmsTests } from "../definitions/simplificationAlgorithmsTests.js";
2021

21-
let testsBlock = new Block();
22-
2322
const runSimplificationAlgorithmsCustomTest = async (t) => {
24-
testsBlock.clearState();
25-
testsBlock = t.circuit(testsBlock);
23+
if (getTopBlock()) {
24+
getTopBlock().clearState();
25+
} else {
26+
setTopBlock(new Block());
27+
}
28+
setTopBlock(t.circuit(getTopBlock()));
2629

2730
//computation of simplified block value
28-
const actualValue = await testsBlock.getSimplifiedValue();
31+
const actualValue = await getTopBlock().getSimplifiedValue();
2932
const expectedValue = t.assertion;
3033
const testCondition = areEqualArraysRoundDecimal(
3134
actualValue,
@@ -44,7 +47,7 @@ const runSimplificationAlgorithmsCustomTest = async (t) => {
4447
"tests-css"
4548
);
4649

47-
testsBlock.clearState();
50+
getTopBlock().clearState();
4851
return;
4952
};
5053

test/definitions/viewServicesTests.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import { Block } from "../../model/elements/block.js";
1010
import { getTopBlock, setTopBlock } from "../../model/topBlockService.js";
1111
import { roundDecimal, sleep } from "../../util/commons.js";
12+
import { setLogMode } from "../../util/loggingService.js";
1213
import { getTotalLengthOfAllLines } from "../../view/services/core/lineRenderingService.js";
1314
import { optimizeTopology } from "../../view/services/feature/optimizeTopologyService.js";
1415
import { circuit1 } from "./circuits.js";
@@ -17,7 +18,14 @@ export const viewServicesTests = {
1718
test1: {
1819
description: "test1: zoomingService",
1920
steps: async function () {
20-
setTopBlock(circuit1(new Block()));
21+
setLogMode("null");
22+
23+
if (getTopBlock()) {
24+
getTopBlock().clearState();
25+
} else {
26+
setTopBlock(new Block());
27+
}
28+
setTopBlock(circuit1(getTopBlock()));
2129

2230
const zoomInButton = document.getElementById("zoom-in-button");
2331
const zoomOutButton = document.getElementById("zoom-out-button");
@@ -61,7 +69,12 @@ export const viewServicesTests = {
6169
test2: {
6270
description: "test2: optimizeTopologyService",
6371
steps: async function () {
64-
setTopBlock(circuit1(new Block()));
72+
if (getTopBlock()) {
73+
getTopBlock().clearState();
74+
} else {
75+
setTopBlock(new Block());
76+
}
77+
setTopBlock(circuit1(getTopBlock()));
6578

6679
const initialTotalLengthOfAllLines = getTotalLengthOfAllLines();
6780
await optimizeTopology({

test/jest/simplificationAlgorithms.test.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,24 @@
1212
// Import this first to initialize required components
1313
import * as computerAlgebraService from "../../math/computerAlgebra/computerAlgebraService.js";
1414
import { Block } from "../../model/elements/block.js";
15+
import { getTopBlock, setTopBlock } from "../../model/topBlockService.js";
1516
import {
1617
areEqualArraysRoundDecimal,
1718
roundDecimalDigitsTests,
1819
} from "../../util/commons.js";
1920
import { getLogMode, setLogMode } from "../../util/loggingService.js";
2021
import { simplificationAlgorithmsTests } from "../definitions/simplificationAlgorithmsTests.js";
2122

22-
let testsBlock = new Block();
23-
2423
const runSimplificationAlgorithmsJestTest = async (t) => {
25-
testsBlock.clearState();
26-
testsBlock = t.circuit(testsBlock);
24+
if (getTopBlock()) {
25+
getTopBlock().clearState();
26+
} else {
27+
setTopBlock(new Block());
28+
}
29+
setTopBlock(t.circuit(getTopBlock()));
2730

2831
//computation of simplified block value
29-
const actualValue = await testsBlock.getSimplifiedValue();
32+
const actualValue = await getTopBlock().getSimplifiedValue();
3033
const expectedValue = t.assertion;
3134
const testCondition = areEqualArraysRoundDecimal(
3235
actualValue,
@@ -38,7 +41,7 @@ const runSimplificationAlgorithmsJestTest = async (t) => {
3841
expect(testCondition).toBeTruthy();
3942
});
4043

41-
testsBlock.clearState();
44+
getTopBlock().clearState();
4245
return;
4346
};
4447

view/plots/bodePlot.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export default class BodePlot {
107107
this.#bandwidthThreshold = "";
108108
}
109109

110-
if (!plotContainerDomElement) {
110+
if (!plotContainerDomElement || !functionPlot) {
111111
// return Bode curve points & characteristics numbers without displaying the plot (ex. for testing)
112112
return {
113113
magnitudeCurvePoints: this.#magnitudeCurvePoints,

view/plots/nyquistPlot.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ export default class NyquistPlot {
6969
this.#denominatorTermsArray
7070
);
7171

72-
if (!plotContainerDomElement) {
72+
if (!plotContainerDomElement || !functionPlot) {
7373
// return Nyquist curve points & stability without displaying the plot (ex. for testing)
7474
return {
7575
curvePoints: this.#curvePoints,

view/plots/timeDomainPlot.js

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,6 @@ export default class TimeDomainPlot {
4747
zeros,
4848
poles
4949
) {
50-
this.#plotContainerDomElement = plotContainerDomElement;
51-
//create the two plot DOM elements inside the container
52-
const markup = `
53-
<div class="time-domain-subplot" id="time-response-plot"></div>
54-
<div class="time-domain-subplot" id="trajectory-plot"></div>
55-
`;
56-
plotContainerDomElement.insertAdjacentHTML("afterbegin", markup);
57-
58-
this.#timeResponsePlotDomElement = plotContainerDomElement.querySelector(
59-
"#time-response-plot"
60-
);
61-
this.#trajectoryPlotDomElement =
62-
plotContainerDomElement.querySelector("#trajectory-plot");
6350
this.#numeratorTermsArray = numeratorTermsArray;
6451
this.#denominatorTermsArray = denominatorTermsArray;
6552
this.#zeros = zeros;
@@ -72,9 +59,31 @@ export default class TimeDomainPlot {
7259
);
7360
}
7461

75-
this.createTimeDomainPlot();
62+
if (!plotContainerDomElement || !functionPlot) {
63+
// return time domain curve points without displaying the plots (ex. for testing)
64+
return {
65+
timeResponseCurvePoints: this.#timeResponseCurvePoints,
66+
trajectoryCurvePoints: this.#trajectoryCurvePoints,
67+
};
68+
} else {
69+
this.#plotContainerDomElement = plotContainerDomElement;
70+
//create the two plot DOM elements inside the container
71+
const markup = `
72+
<div class="time-domain-subplot" id="time-response-plot"></div>
73+
<div class="time-domain-subplot" id="trajectory-plot"></div>
74+
`;
75+
plotContainerDomElement.insertAdjacentHTML("afterbegin", markup);
76+
77+
this.#timeResponsePlotDomElement = plotContainerDomElement.querySelector(
78+
"#time-response-plot"
79+
);
80+
this.#trajectoryPlotDomElement =
81+
plotContainerDomElement.querySelector("#trajectory-plot");
82+
83+
this.createTimeDomainPlot();
7684

77-
return this.#timeDomainObserver;
85+
return this.#timeDomainObserver;
86+
}
7887
}
7988

8089
/**

0 commit comments

Comments
 (0)