UNPKG

@dpkit/table

Version:

Data Package implementation in TypeScript.

33 lines 5.49 kB
import { DataFrame } from "nodejs-polars"; import { describe, expect, it } from "vitest"; import { processTable } from "../table/index.js"; describe("parseField", () => { describe("missing values", () => { it.each([ // Schema-level ["", null, {}], ["", "", { schemaLevel: [] }], ["-", null, { schemaLevel: ["-"] }], ["x", null, { schemaLevel: ["x"] }], // Field-level ["", null, {}], ["-", null, { fieldLevel: ["-"] }], ["-", "-", { fieldLevel: [""] }], ["n/a", null, { fieldLevel: ["n/a"] }], // Schema-level and field-level ["-", null, { schemaLevel: ["x"], fieldLevel: ["-"] }], ["-", "-", { schemaLevel: ["-"], fieldLevel: ["x"] }], // @ts-ignore ])("$0 -> $1 $2", async (cell, value, { fieldLevel, schemaLevel }) => { const table = DataFrame({ name: [cell] }).lazy(); const schema = { missingValues: schemaLevel, fields: [{ name: "name", type: "string", missingValues: fieldLevel }], }; const ldf = await processTable(table, { schema }); const df = await ldf.collect(); expect(df.getColumn("name").get(0)).toEqual(value); }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2Uuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2ZpZWxkL3BhcnNlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhELFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQzFCLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7UUFDOUIsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNOLGVBQWU7WUFDZixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2QsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzdCLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUVuQyxjQUFjO1lBQ2QsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNkLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBRXRDLCtCQUErQjtZQUMvQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RELENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckQsYUFBYTtTQUNkLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRTtZQUNuRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDaEQsTUFBTSxNQUFNLEdBQVc7Z0JBQ3JCLGFBQWEsRUFBRSxXQUFXO2dCQUMxQixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDdEUsQ0FBQTtZQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDakQsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUE7WUFFOUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2NoZW1hIH0gZnJvbSBcIkBkcGtpdC9jb3JlXCJcbmltcG9ydCB7IERhdGFGcmFtZSB9IGZyb20gXCJub2RlanMtcG9sYXJzXCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyBwcm9jZXNzVGFibGUgfSBmcm9tIFwiLi4vdGFibGUvaW5kZXgudHNcIlxuXG5kZXNjcmliZShcInBhcnNlRmllbGRcIiwgKCkgPT4ge1xuICBkZXNjcmliZShcIm1pc3NpbmcgdmFsdWVzXCIsICgpID0+IHtcbiAgICBpdC5lYWNoKFtcbiAgICAgIC8vIFNjaGVtYS1sZXZlbFxuICAgICAgW1wiXCIsIG51bGwsIHt9XSxcbiAgICAgIFtcIlwiLCBcIlwiLCB7IHNjaGVtYUxldmVsOiBbXSB9XSxcbiAgICAgIFtcIi1cIiwgbnVsbCwgeyBzY2hlbWFMZXZlbDogW1wiLVwiXSB9XSxcbiAgICAgIFtcInhcIiwgbnVsbCwgeyBzY2hlbWFMZXZlbDogW1wieFwiXSB9XSxcblxuICAgICAgLy8gRmllbGQtbGV2ZWxcbiAgICAgIFtcIlwiLCBudWxsLCB7fV0sXG4gICAgICBbXCItXCIsIG51bGwsIHsgZmllbGRMZXZlbDogW1wiLVwiXSB9XSxcbiAgICAgIFtcIi1cIiwgXCItXCIsIHsgZmllbGRMZXZlbDogW1wiXCJdIH1dLFxuICAgICAgW1wibi9hXCIsIG51bGwsIHsgZmllbGRMZXZlbDogW1wibi9hXCJdIH1dLFxuXG4gICAgICAvLyBTY2hlbWEtbGV2ZWwgYW5kIGZpZWxkLWxldmVsXG4gICAgICBbXCItXCIsIG51bGwsIHsgc2NoZW1hTGV2ZWw6IFtcInhcIl0sIGZpZWxkTGV2ZWw6IFtcIi1cIl0gfV0sXG4gICAgICBbXCItXCIsIFwiLVwiLCB7IHNjaGVtYUxldmVsOiBbXCItXCJdLCBmaWVsZExldmVsOiBbXCJ4XCJdIH1dLFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgIF0pKFwiJDAgLT4gJDEgJDJcIiwgYXN5bmMgKGNlbGwsIHZhbHVlLCB7IGZpZWxkTGV2ZWwsIHNjaGVtYUxldmVsIH0pID0+IHtcbiAgICAgIGNvbnN0IHRhYmxlID0gRGF0YUZyYW1lKHsgbmFtZTogW2NlbGxdIH0pLmxhenkoKVxuICAgICAgY29uc3Qgc2NoZW1hOiBTY2hlbWEgPSB7XG4gICAgICAgIG1pc3NpbmdWYWx1ZXM6IHNjaGVtYUxldmVsLFxuICAgICAgICBmaWVsZHM6IFt7IG5hbWU6IFwibmFtZVwiLCB0eXBlOiBcInN0cmluZ1wiLCBtaXNzaW5nVmFsdWVzOiBmaWVsZExldmVsIH1dLFxuICAgICAgfVxuXG4gICAgICBjb25zdCBsZGYgPSBhd2FpdCBwcm9jZXNzVGFibGUodGFibGUsIHsgc2NoZW1hIH0pXG4gICAgICBjb25zdCBkZiA9IGF3YWl0IGxkZi5jb2xsZWN0KClcblxuICAgICAgZXhwZWN0KGRmLmdldENvbHVtbihcIm5hbWVcIikuZ2V0KDApKS50b0VxdWFsKHZhbHVlKVxuICAgIH0pXG4gIH0pXG59KVxuIl19