UNPKG

@dpkit/table

Version:

Data Package implementation in TypeScript.

29 lines 5 kB
import { DataFrame } from "nodejs-polars"; import { describe, expect, it } from "vitest"; import { processTable } from "../../table/index.js"; describe("parseDateField", () => { it.each([ // Default format ["2019-01-01", new Date(Date.UTC(2019, 0, 1)), {}], ["10th Jan 1969", null, {}], ["invalid", null, {}], ["", null, {}], // Custom format ["21/11/2006", new Date(Date.UTC(2006, 10, 21)), { format: "%d/%m/%Y" }], ["21/11/06 16:30", null, { format: "%d/%m/%y" }], ["invalid", null, { format: "%d/%m/%y" }], ["", null, { format: "%d/%m/%y" }], ["2006/11/21", new Date(Date.UTC(2006, 10, 21)), { format: "%Y/%m/%d" }], // Invalid format ["21/11/06", null, { format: "invalid" }], ])("%s -> %s %o", async (cell, expected, options) => { const table = DataFrame({ name: [cell] }).lazy(); const schema = { fields: [{ name: "name", type: "date", ...options }], }; const ldf = await processTable(table, { schema }); const df = await ldf.collect(); expect(df.toRecords()[0]?.name).toEqual(expected); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZmllbGQvdHlwZXMvZGF0ZS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVuRCxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDTixpQkFBaUI7UUFDakIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xELENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNyQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBRWQsZ0JBQWdCO1FBQ2hCLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ3hFLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ2hELENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDbEMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFFeEUsaUJBQWlCO1FBQ2pCLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztLQUMxQyxDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ2xELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNoRCxNQUFNLE1BQU0sR0FBRztZQUNiLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBZSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7U0FDOUQsQ0FBQTtRQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDakQsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUE7UUFFOUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDbkQsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFGcmFtZSB9IGZyb20gXCJub2RlanMtcG9sYXJzXCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyBwcm9jZXNzVGFibGUgfSBmcm9tIFwiLi4vLi4vdGFibGUvaW5kZXgudHNcIlxuXG5kZXNjcmliZShcInBhcnNlRGF0ZUZpZWxkXCIsICgpID0+IHtcbiAgaXQuZWFjaChbXG4gICAgLy8gRGVmYXVsdCBmb3JtYXRcbiAgICBbXCIyMDE5LTAxLTAxXCIsIG5ldyBEYXRlKERhdGUuVVRDKDIwMTksIDAsIDEpKSwge31dLFxuICAgIFtcIjEwdGggSmFuIDE5NjlcIiwgbnVsbCwge31dLFxuICAgIFtcImludmFsaWRcIiwgbnVsbCwge31dLFxuICAgIFtcIlwiLCBudWxsLCB7fV0sXG5cbiAgICAvLyBDdXN0b20gZm9ybWF0XG4gICAgW1wiMjEvMTEvMjAwNlwiLCBuZXcgRGF0ZShEYXRlLlVUQygyMDA2LCAxMCwgMjEpKSwgeyBmb3JtYXQ6IFwiJWQvJW0vJVlcIiB9XSxcbiAgICBbXCIyMS8xMS8wNiAxNjozMFwiLCBudWxsLCB7IGZvcm1hdDogXCIlZC8lbS8leVwiIH1dLFxuICAgIFtcImludmFsaWRcIiwgbnVsbCwgeyBmb3JtYXQ6IFwiJWQvJW0vJXlcIiB9XSxcbiAgICBbXCJcIiwgbnVsbCwgeyBmb3JtYXQ6IFwiJWQvJW0vJXlcIiB9XSxcbiAgICBbXCIyMDA2LzExLzIxXCIsIG5ldyBEYXRlKERhdGUuVVRDKDIwMDYsIDEwLCAyMSkpLCB7IGZvcm1hdDogXCIlWS8lbS8lZFwiIH1dLFxuXG4gICAgLy8gSW52YWxpZCBmb3JtYXRcbiAgICBbXCIyMS8xMS8wNlwiLCBudWxsLCB7IGZvcm1hdDogXCJpbnZhbGlkXCIgfV0sXG4gIF0pKFwiJXMgLT4gJXMgJW9cIiwgYXN5bmMgKGNlbGwsIGV4cGVjdGVkLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgdGFibGUgPSBEYXRhRnJhbWUoeyBuYW1lOiBbY2VsbF0gfSkubGF6eSgpXG4gICAgY29uc3Qgc2NoZW1hID0ge1xuICAgICAgZmllbGRzOiBbeyBuYW1lOiBcIm5hbWVcIiwgdHlwZTogXCJkYXRlXCIgYXMgY29uc3QsIC4uLm9wdGlvbnMgfV0sXG4gICAgfVxuXG4gICAgY29uc3QgbGRmID0gYXdhaXQgcHJvY2Vzc1RhYmxlKHRhYmxlLCB7IHNjaGVtYSB9KVxuICAgIGNvbnN0IGRmID0gYXdhaXQgbGRmLmNvbGxlY3QoKVxuXG4gICAgZXhwZWN0KGRmLnRvUmVjb3JkcygpWzBdPy5uYW1lKS50b0VxdWFsKGV4cGVjdGVkKVxuICB9KVxufSlcbiJdfQ==