36 lines
1.2 KiB
JavaScript
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());
|
|
}
|
|
});
|