Add Node utilities and tests
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
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());
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user