UNPKG

@dpkit/table

Version:

Data Package implementation in TypeScript.

36 lines 5.85 kB
import { DataFrame } from "nodejs-polars"; import { describe, expect, it } from "vitest"; import { processTable } from "../../table/index.js"; // TODO: Enable this test suite // Currently, it seems to have a weird datetime translation bug on the Polars side // as resutls within the dataframe are correct, but exported ones are not describe.skip("parseDatetimeField", () => { it.each([ // Default format ["2014-01-01T06:00:00", new Date(2014, 0, 1, 6, 0, 0), {}], ["2014-01-01T06:00:00Z", new Date(Date.UTC(2014, 0, 1, 6, 0, 0)), {}], ["Mon 1st Jan 2014 9 am", null, {}], ["invalid", null, {}], ["", null, {}], // Custom formats [ "21/11/2006 16:30", new Date(2006, 10, 21, 16, 30), { format: "%d/%m/%Y %H:%M" }, ], ["16:30 21/11/06", null, { format: "%H:%M %d/%m/%y" }], // Incorrect format ["invalid", null, { format: "%d/%m/%y %H:%M" }], ["", null, { format: "%d/%m/%y %H:%M" }], // Invalid format ["21/11/06 16:30", null, { format: "invalid" }], ])("%s -> %s %o", async (cell, expected, options) => { const table = DataFrame({ name: [cell] }).lazy(); const schema = { fields: [{ name: "name", type: "datetime", ...options }], }; const ldf = await processTable(table, { schema }); const df = await ldf.collect(); expect(df.toRecords()[0]?.name).toEqual(expected); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ZpZWxkL3R5cGVzL2RhdGV0aW1lLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRW5ELCtCQUErQjtBQUMvQixrRkFBa0Y7QUFDbEYseUVBQXlFO0FBQ3pFLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ3ZDLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDTixpQkFBaUI7UUFDakIsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMxRCxDQUFDLHNCQUFzQixFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyRSxDQUFDLHVCQUF1QixFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7UUFDbkMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNyQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBRWQsaUJBQWlCO1FBQ2pCO1lBQ0Usa0JBQWtCO1lBQ2xCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDOUIsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUU7U0FDN0I7UUFDRCxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsbUJBQW1CO1FBQzNFLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQy9DLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhDLGlCQUFpQjtRQUNqQixDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztLQUNoRCxDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ2xELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNoRCxNQUFNLE1BQU0sR0FBRztZQUNiLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBbUIsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1NBQ2xFLENBQUE7UUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ2pELE1BQU0sRUFBRSxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRTlCLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ25ELENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhRnJhbWUgfSBmcm9tIFwibm9kZWpzLXBvbGFyc1wiXG5pbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlc3RcIlxuaW1wb3J0IHsgcHJvY2Vzc1RhYmxlIH0gZnJvbSBcIi4uLy4uL3RhYmxlL2luZGV4LnRzXCJcblxuLy8gVE9ETzogRW5hYmxlIHRoaXMgdGVzdCBzdWl0ZVxuLy8gQ3VycmVudGx5LCBpdCBzZWVtcyB0byBoYXZlIGEgd2VpcmQgZGF0ZXRpbWUgdHJhbnNsYXRpb24gYnVnIG9uIHRoZSBQb2xhcnMgc2lkZVxuLy8gYXMgcmVzdXRscyB3aXRoaW4gdGhlIGRhdGFmcmFtZSBhcmUgY29ycmVjdCwgYnV0IGV4cG9ydGVkIG9uZXMgYXJlIG5vdFxuZGVzY3JpYmUuc2tpcChcInBhcnNlRGF0ZXRpbWVGaWVsZFwiLCAoKSA9PiB7XG4gIGl0LmVhY2goW1xuICAgIC8vIERlZmF1bHQgZm9ybWF0XG4gICAgW1wiMjAxNC0wMS0wMVQwNjowMDowMFwiLCBuZXcgRGF0ZSgyMDE0LCAwLCAxLCA2LCAwLCAwKSwge31dLFxuICAgIFtcIjIwMTQtMDEtMDFUMDY6MDA6MDBaXCIsIG5ldyBEYXRlKERhdGUuVVRDKDIwMTQsIDAsIDEsIDYsIDAsIDApKSwge31dLFxuICAgIFtcIk1vbiAxc3QgSmFuIDIwMTQgOSBhbVwiLCBudWxsLCB7fV0sXG4gICAgW1wiaW52YWxpZFwiLCBudWxsLCB7fV0sXG4gICAgW1wiXCIsIG51bGwsIHt9XSxcblxuICAgIC8vIEN1c3RvbSBmb3JtYXRzXG4gICAgW1xuICAgICAgXCIyMS8xMS8yMDA2IDE2OjMwXCIsXG4gICAgICBuZXcgRGF0ZSgyMDA2LCAxMCwgMjEsIDE2LCAzMCksXG4gICAgICB7IGZvcm1hdDogXCIlZC8lbS8lWSAlSDolTVwiIH0sXG4gICAgXSxcbiAgICBbXCIxNjozMCAyMS8xMS8wNlwiLCBudWxsLCB7IGZvcm1hdDogXCIlSDolTSAlZC8lbS8leVwiIH1dLCAvLyBJbmNvcnJlY3QgZm9ybWF0XG4gICAgW1wiaW52YWxpZFwiLCBudWxsLCB7IGZvcm1hdDogXCIlZC8lbS8leSAlSDolTVwiIH1dLFxuICAgIFtcIlwiLCBudWxsLCB7IGZvcm1hdDogXCIlZC8lbS8leSAlSDolTVwiIH1dLFxuXG4gICAgLy8gSW52YWxpZCBmb3JtYXRcbiAgICBbXCIyMS8xMS8wNiAxNjozMFwiLCBudWxsLCB7IGZvcm1hdDogXCJpbnZhbGlkXCIgfV0sXG4gIF0pKFwiJXMgLT4gJXMgJW9cIiwgYXN5bmMgKGNlbGwsIGV4cGVjdGVkLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgdGFibGUgPSBEYXRhRnJhbWUoeyBuYW1lOiBbY2VsbF0gfSkubGF6eSgpXG4gICAgY29uc3Qgc2NoZW1hID0ge1xuICAgICAgZmllbGRzOiBbeyBuYW1lOiBcIm5hbWVcIiwgdHlwZTogXCJkYXRldGltZVwiIGFzIGNvbnN0LCAuLi5vcHRpb25zIH1dLFxuICAgIH1cblxuICAgIGNvbnN0IGxkZiA9IGF3YWl0IHByb2Nlc3NUYWJsZSh0YWJsZSwgeyBzY2hlbWEgfSlcbiAgICBjb25zdCBkZiA9IGF3YWl0IGxkZi5jb2xsZWN0KClcblxuICAgIGV4cGVjdChkZi50b1JlY29yZHMoKVswXT8ubmFtZSkudG9FcXVhbChleHBlY3RlZClcbiAgfSlcbn0pXG4iXX0=