qcal/frcal/src/TimeOfDay.test.ts

55 lines
1.5 KiB
TypeScript
Raw Normal View History

import {dayMsToDecimal, decimalToDayMs} from './TimeOfDay';
describe('dayMsToDecimal', () => {
it('works', () => {
const expected = {hour: 0, minute: 0, second: 0};
let ms = 0;
function hour() {
for (let i = 0; i < 10000; ++i) {
expect(dayMsToDecimal(ms++)).toStrictEqual(expected);
expect(dayMsToDecimal(ms)).toStrictEqual(expected);
ms += 862;
expect(dayMsToDecimal(ms++)).toStrictEqual(expected);
if (++expected.second >= 100) {
expected.second = 0;
if (++expected.minute >= 100) {
expected.minute = 0;
++expected.hour;
}
}
}
}
hour();
hour();
expected.hour += 7;
ms += 864 * 10_000 * 7;
hour();
expect(ms).toStrictEqual(86_400_000);
expect(expected).toStrictEqual({hour: 10, minute: 0, second: 0});
});
});
describe('decimalToDayMs', () => {
it('works', () => {
function hour(hour: number) {
let expected = hour * 8_640_000;
for (let minute = 0; minute < 100; ++minute) {
for (let second = 0; second < 100; ++second) {
expect(decimalToDayMs({hour, minute, second})).toStrictEqual(expected);
expected += 864;
}
}
expect(expected).toEqual((hour + 1) * 8_640_000);
}
hour(0);
hour(9);
});
})