@mindconnect/mindconnect-nodejs
Version:
MindConnect Library for NodeJS (community based)
116 lines • 5.41 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const chai = require("chai");
require("url-search-params-polyfill");
const sdk_1 = require("../src/api/sdk");
const utils_1 = require("../src/api/utils");
const command_utils_1 = require("../src/cli/commands/command-utils");
chai.should();
describe("[SDK] SignalValidationClient", () => {
const auth = utils_1.loadAuth();
const sdk = new sdk_1.MindSphereSdk({
basicAuth: utils_1.decrypt(auth, "passkey.4.unit.test"),
tenant: auth.tenant,
gateway: auth.gateway
});
const signalValidationClient = sdk.GetSignalValidationClient();
it("SDK should not be undefined", () => __awaiter(void 0, void 0, void 0, function* () {
sdk.should.not.be.undefined;
signalValidationClient.should.not.be.undefined;
}));
it("Signal Validation should perform a Range Check.", () => __awaiter(void 0, void 0, void 0, function* () {
sdk.should.not.be.undefined;
signalValidationClient.should.not.be.undefined;
const data = command_utils_1.generateTestData(100, x => {
return x === 31 ? 120 : Math.sin(x);
});
const result = yield signalValidationClient.DetectRangeViolations(data, {
variableName: "variable1",
lowerLimit: -1,
upperLimit: 1
});
result.should.not.be.null;
result.length.should.be.equal(1);
}));
it("Signal Validation should perform a Spike Alert.", () => __awaiter(void 0, void 0, void 0, function* () {
const data = command_utils_1.generateTestData(100, x => {
return x >= 40 && x <= 42 ? 13 * Math.sin(x) : Math.sin(x);
});
const result = yield signalValidationClient.DetectSpikes(data, {
variableName: "variable1",
windowSize: 20
});
result.length.should.be.equal(2);
}));
it("Signal Validation should perform Jump Detection.", () => __awaiter(void 0, void 0, void 0, function* () {
const data = command_utils_1.generateTestData(100, x => {
return x >= 84 && x <= 85 ? 500 * Math.cos(x) : Math.sin(x);
});
const result = yield signalValidationClient.DetectJumps(data, {
variableName: "variable1",
windowSize: 10
});
result.length.should.be.equal(2);
}));
it("Signal Validation should perform Noise Setection.", () => __awaiter(void 0, void 0, void 0, function* () {
const data = command_utils_1.generateTestData(1000, x => {
return x % 100 >= 90 && x % 100 <= 100 ? Math.sin(x) * 3.15 : Math.sin(x);
});
const result = yield signalValidationClient.DetectNoise(data, {
variableName: "variable1",
windowRadius: 3,
threshold: 1
});
result.length.should.be.equal(7);
}));
it("Signal Validation should detect Data Gaps.", () => __awaiter(void 0, void 0, void 0, function* () {
const data = command_utils_1.generateTestData(1000, x => {
if (x % 100 === 80 || x % 100 === 81)
return undefined;
return Math.sin(x);
});
const result = yield signalValidationClient.DetectGaps(data, {
variableName: "variable1",
threshold: 1500
});
result.events.length.should.be.equal(20);
}));
it("Signal Validation should interpolate Data Gaps.", () => __awaiter(void 0, void 0, void 0, function* () {
const data = command_utils_1.generateTestData(1000, x => {
if (x % 100 === 80 || x % 100 === 81)
return undefined;
return Math.sin(x);
});
const result = yield signalValidationClient.DetectGapsAndInterpolate(data, {
variableName: "variable1",
threshold: 1500
});
result.events.length.should.be.equal(20);
result.interpolatedMeasurements.length.should.be.equal(20);
}));
it("Signal Validation should detect Bias.", () => __awaiter(void 0, void 0, void 0, function* () {
const data = command_utils_1.generateTestData(1000, x => {
if (x % 100 >= 80 && x % 100 <= 85)
return 4 * Math.sin(x);
else
return 4;
});
const result = yield signalValidationClient.DetectBias(data, {
variableName: "variable1",
windowSize: 20,
step: 10,
threshold: 3
});
result.length.should.equal(97);
}));
});
//# sourceMappingURL=signal-validation.spec.js.map