fast-check
Version:
Property based testing framework for JavaScript (like QuickCheck)
24 lines (23 loc) • 785 B
JavaScript
import { Date, Error, safeGetTime } from '../../../utils/globals.js';
const safeNaN = Number.NaN;
const safeNumberIsNaN = Number.isNaN;
export function timeToDateMapper(time) {
return new Date(time);
}
export function timeToDateUnmapper(value) {
if (!(value instanceof Date) || value.constructor !== Date) {
throw new Error('Not a valid value for date unmapper');
}
return safeGetTime(value);
}
export function timeToDateMapperWithNaN(valueForNaN) {
return (time) => {
return time === valueForNaN ? new Date(safeNaN) : timeToDateMapper(time);
};
}
export function timeToDateUnmapperWithNaN(valueForNaN) {
return (value) => {
const time = timeToDateUnmapper(value);
return safeNumberIsNaN(time) ? valueForNaN : time;
};
}