CoBiE/test/cobie.test.js
2025-06-15 00:00:56 +02:00

36 lines
1.2 KiB
JavaScript

const assert = require('node:assert');
const { parseCobiets, formatCobieTimestamp, toCobiets, fromCobiets, getTAIOffsetAt } = require('..');
const test = require('node:test');
test('parseCobiets basic values', () => {
assert.strictEqual(parseCobiets('0.0000'), 0);
assert.strictEqual(parseCobiets('1.0000'), 0x10000);
assert.strictEqual(parseCobiets('-1.0000'), -0x10000);
assert.strictEqual(parseCobiets('0.0001'), 1);
});
test('formatCobieTimestamp round trip', () => {
const str = '+1.0001';
const parsed = parseCobiets(str);
assert.strictEqual(formatCobieTimestamp(parsed), str);
});
test('getTAIOffsetAt known dates', () => {
assert.strictEqual(getTAIOffsetAt(new Date('1972-01-01T00:00:00Z')), 10);
assert.strictEqual(getTAIOffsetAt(new Date('1973-01-01T00:00:00Z')), 12);
assert.strictEqual(getTAIOffsetAt(new Date('2017-01-01T00:00:00Z')), 37);
});
test('toCobiets/fromCobiets round trip', () => {
const dates = [
new Date('1970-01-01T00:00:00Z'),
new Date('2017-01-01T00:00:00Z')
];
for (const d of dates) {
const cob = toCobiets(d);
const back = fromCobiets(cob);
assert.strictEqual(back.toISOString(), d.toISOString());
}
});