agent updates
This commit is contained in:
49
test/measurement.test.js
Normal file
49
test/measurement.test.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
|
||||
const Measurement = require('../src/measurements/Measurement.js');
|
||||
const { near } = require('./helpers.js');
|
||||
|
||||
test('maintains rolling window and exposes stats', () => {
|
||||
const m = new Measurement('flow', 'measured', 'upstream', 3);
|
||||
m.setValue(10, 1).setValue(20, 2).setValue(30, 3).setValue(40, 4);
|
||||
|
||||
assert.deepEqual(m.getAllValues().values, [20, 30, 40]);
|
||||
assert.deepEqual(m.getAllValues().timestamps, [2, 3, 4]);
|
||||
assert.equal(m.getCurrentValue(), 40);
|
||||
assert.equal(m.getAverage(), 30);
|
||||
assert.equal(m.getMin(), 20);
|
||||
assert.equal(m.getMax(), 40);
|
||||
});
|
||||
|
||||
test('lag semantics: lag=1 is previous sample', () => {
|
||||
const m = new Measurement('flow', 'measured', 'upstream', 5);
|
||||
m.setValue(10, 100).setValue(20, 200).setValue(30, 300);
|
||||
|
||||
assert.equal(m.getLaggedSample(0).value, 30);
|
||||
assert.equal(m.getLaggedSample(1).value, 20);
|
||||
assert.equal(m.getLaggedValue(1), 20);
|
||||
});
|
||||
|
||||
test('convertTo converts values to target unit', () => {
|
||||
const m = new Measurement('flow', 'measured', 'upstream', 5);
|
||||
m.setUnit('m3/h');
|
||||
m.setValue(3.6, 1);
|
||||
|
||||
const converted = m.convertTo('m3/s');
|
||||
assert.ok(near(converted.getCurrentValue(), 0.001, 1e-8));
|
||||
assert.equal(converted.unit, 'm3/s');
|
||||
assert.equal(converted.getLatestTimestamp(), 1);
|
||||
});
|
||||
|
||||
test('createDifference aligns timestamps and subtracts downstream from upstream', () => {
|
||||
const up = new Measurement('pressure', 'measured', 'upstream', 10).setUnit('mbar');
|
||||
const down = new Measurement('pressure', 'measured', 'downstream', 10).setUnit('mbar');
|
||||
|
||||
up.setValue(120, 1).setValue(140, 2);
|
||||
down.setValue(100, 2).setValue(95, 3);
|
||||
|
||||
const diff = Measurement.createDifference(up, down);
|
||||
assert.deepEqual(diff.getAllValues().timestamps, [2]);
|
||||
assert.deepEqual(diff.getAllValues().values, [40]);
|
||||
});
|
||||
Reference in New Issue
Block a user