UNPKG

@dpkit/table

Version:

Data Package implementation in TypeScript.

30 lines 3.9 kB
import { DataFrame } from "nodejs-polars"; import { describe, expect, it } from "vitest"; import { processTable } from "../../table/index.js"; describe("parseYearField", () => { it.each([ // Tests ported from frictionless-py (string values only) ["2000", 2000], ["-2000", null], ["20000", null], ["3.14", null], ["", null], // Additional tests for completeness ["0000", 0], ["9999", 9999], //[" 2023 ", 2023], //[" 1984 ", 1984], ["bad", null], ["12345", null], ["123", null], ])("%s -> %s", async (cell, value) => { const table = DataFrame({ name: [cell] }).lazy(); const schema = { fields: [{ name: "name", type: "year" }], }; const ldf = await processTable(table, { schema }); const df = await ldf.collect(); expect(df.getColumn("name").get(0)).toEqual(value); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZmllbGQvdHlwZXMveWVhci5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVuRCxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDTix5REFBeUQ7UUFDekQsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQ2QsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQ2YsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQ2YsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQ2QsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDO1FBRVYsb0NBQW9DO1FBQ3BDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNYLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztRQUNkLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1FBQ2IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQ2YsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO0tBQ2QsQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ25DLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNoRCxNQUFNLE1BQU0sR0FBRztZQUNiLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBZSxFQUFFLENBQUM7U0FDbEQsQ0FBQTtRQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDakQsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUE7UUFFOUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BELENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhRnJhbWUgfSBmcm9tIFwibm9kZWpzLXBvbGFyc1wiXG5pbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlc3RcIlxuaW1wb3J0IHsgcHJvY2Vzc1RhYmxlIH0gZnJvbSBcIi4uLy4uL3RhYmxlL2luZGV4LnRzXCJcblxuZGVzY3JpYmUoXCJwYXJzZVllYXJGaWVsZFwiLCAoKSA9PiB7XG4gIGl0LmVhY2goW1xuICAgIC8vIFRlc3RzIHBvcnRlZCBmcm9tIGZyaWN0aW9ubGVzcy1weSAoc3RyaW5nIHZhbHVlcyBvbmx5KVxuICAgIFtcIjIwMDBcIiwgMjAwMF0sXG4gICAgW1wiLTIwMDBcIiwgbnVsbF0sXG4gICAgW1wiMjAwMDBcIiwgbnVsbF0sXG4gICAgW1wiMy4xNFwiLCBudWxsXSxcbiAgICBbXCJcIiwgbnVsbF0sXG5cbiAgICAvLyBBZGRpdGlvbmFsIHRlc3RzIGZvciBjb21wbGV0ZW5lc3NcbiAgICBbXCIwMDAwXCIsIDBdLFxuICAgIFtcIjk5OTlcIiwgOTk5OV0sXG4gICAgLy9bXCIgMjAyMyBcIiwgMjAyM10sXG4gICAgLy9bXCIgIDE5ODQgIFwiLCAxOTg0XSxcbiAgICBbXCJiYWRcIiwgbnVsbF0sXG4gICAgW1wiMTIzNDVcIiwgbnVsbF0sXG4gICAgW1wiMTIzXCIsIG51bGxdLFxuICBdKShcIiVzIC0+ICVzXCIsIGFzeW5jIChjZWxsLCB2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHRhYmxlID0gRGF0YUZyYW1lKHsgbmFtZTogW2NlbGxdIH0pLmxhenkoKVxuICAgIGNvbnN0IHNjaGVtYSA9IHtcbiAgICAgIGZpZWxkczogW3sgbmFtZTogXCJuYW1lXCIsIHR5cGU6IFwieWVhclwiIGFzIGNvbnN0IH1dLFxuICAgIH1cblxuICAgIGNvbnN0IGxkZiA9IGF3YWl0IHByb2Nlc3NUYWJsZSh0YWJsZSwgeyBzY2hlbWEgfSlcbiAgICBjb25zdCBkZiA9IGF3YWl0IGxkZi5jb2xsZWN0KClcblxuICAgIGV4cGVjdChkZi5nZXRDb2x1bW4oXCJuYW1lXCIpLmdldCgwKSkudG9FcXVhbCh2YWx1ZSlcbiAgfSlcbn0pXG4iXX0=