UNPKG

@dpkit/table

Version:

Data Package implementation in TypeScript.

51 lines 8.68 kB
import { DataFrame } from "nodejs-polars"; import { describe, expect, it } from "vitest"; import { processTable } from "../../table/index.js"; describe("parseBooleanField", () => { it.each([ // Default true values ["true", true, {}], ["True", true, {}], ["TRUE", true, {}], ["1", true, {}], // Default false values ["false", false, {}], ["False", false, {}], ["FALSE", false, {}], ["0", false, {}], // Invalid values ["", null, {}], ["invalid", null, {}], ["truthy", null, {}], ["falsy", null, {}], ["2", null, {}], ["-100", null, {}], ["t", null, {}], ["f", null, {}], ["3.14", null, {}], // Custom true values ["Y", true, { trueValues: ["Y", "y", "yes"] }], ["y", true, { trueValues: ["Y", "y", "yes"] }], ["yes", true, { trueValues: ["Y", "y", "yes"] }], ["true", null, { trueValues: ["Y", "y", "yes"] }], // Custom false values ["N", false, { falseValues: ["N", "n", "no"] }], ["n", false, { falseValues: ["N", "n", "no"] }], ["no", false, { falseValues: ["N", "n", "no"] }], ["false", null, { falseValues: ["N", "n", "no"] }], // Custom true and false values ["oui", true, { trueValues: ["oui", "si"], falseValues: ["non", "no"] }], ["si", true, { trueValues: ["oui", "si"], falseValues: ["non", "no"] }], ["non", false, { trueValues: ["oui", "si"], falseValues: ["non", "no"] }], ["no", false, { trueValues: ["oui", "si"], falseValues: ["non", "no"] }], ])("%s -> %s %o", async (cell, value, options) => { const table = DataFrame({ name: [cell] }).lazy(); const schema = { fields: [{ name: "name", type: "boolean", ...options }], }; const ldf = await processTable(table, { schema }); const df = await ldf.collect(); expect(df.toRecords()[0]?.name).toEqual(value); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZmllbGQvdHlwZXMvYm9vbGVhbi5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVuRCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDTixzQkFBc0I7UUFDdEIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNsQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2xCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7UUFDbEIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUVmLHVCQUF1QjtRQUN2QixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNwQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBRWhCLGlCQUFpQjtRQUNqQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2QsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNyQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7UUFDbkIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUs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QUMsT0FBTyxFQUFFLENBQUE7UUFFOUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEQsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFGcmFtZSB9IGZyb20gXCJub2RlanMtcG9sYXJzXCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyBwcm9jZXNzVGFibGUgfSBmcm9tIFwiLi4vLi4vdGFibGUvaW5kZXgudHNcIlxuXG5kZXNjcmliZShcInBhcnNlQm9vbGVhbkZpZWxkXCIsICgpID0+IHtcbiAgaXQuZWFjaChbXG4gICAgLy8gRGVmYXVsdCB0cnVlIHZhbHVlc1xuICAgIFtcInRydWVcIiwgdHJ1ZSwge31dLFxuICAgIFtcIlRydWVcIiwgdHJ1ZSwge31dLFxuICAgIFtcIlRSVUVcIiwgdHJ1ZSwge31dLFxuICAgIFtcIjFcIiwgdHJ1ZSwge31dLFxuXG4gICAgLy8gRGVmYXVsdCBmYWxzZSB2YWx1ZXNcbiAgICBbXCJmYWxzZVwiLCBmYWxzZSwge31dLFxuICAgIFtcIkZhbHNlXCIsIGZhbHNlLCB7fV0sXG4gICAgW1wiRkFMU0VcIiwgZmFsc2UsIHt9XSxcbiAgICBbXCIwXCIsIGZhbHNlLCB7fV0sXG5cbiAgICAvLyBJbnZhbGlkIHZhbHVlc1xuICAgIFtcIlwiLCBudWxsLCB7fV0sXG4gICAgW1wiaW52YWxpZFwiLCBudWxsLCB7fV0sXG4gICAgW1widHJ1dGh5XCIsIG51bGwsIHt9XSxcbiAgICBbXCJmYWxzeVwiLCBudWxsLCB7fV0sXG4gICAgW1wiMlwiLCBudWxsLCB7fV0sXG4gICAgW1wiLTEwMFwiLCBudWxsLCB7fV0sXG4gICAgW1widFwiLCBudWxsLCB7fV0sXG4gICAgW1wiZlwiLCBudWxsLCB7fV0sXG4gICAgW1wiMy4xNFwiLCBudWxsLCB7fV0sXG5cbiAgICAvLyBDdXN0b20gdHJ1ZSB2YWx1ZXNcbiAgICBbXCJZXCIsIHRydWUsIHsgdHJ1ZVZhbHVlczogW1wiWVwiLCBcInlcIiwgXCJ5ZXNcIl0gfV0sXG4gICAgW1wieVwiLCB0cnVlLCB7IHRydWVWYWx1ZXM6IFtcIllcIiwgXCJ5XCIsIFwieWVzXCJdIH1dLFxuICAgIFtcInllc1wiLCB0cnVlLCB7IHRydWVWYWx1ZXM6IFtcIllcIiwgXCJ5XCIsIFwieWVzXCJdIH1dLFxuICAgIFtcInRydWVcIiwgbnVsbCwgeyB0cnVlVmFsdWVzOiBbXCJZXCIsIFwieVwiLCBcInllc1wiXSB9XSxcblxuICAgIC8vIEN1c3RvbSBmYWxzZSB2YWx1ZXNcbiAgICBbXCJOXCIsIGZhbHNlLCB7IGZhbHNlVmFsdWVzOiBbXCJOXCIsIFwiblwiLCBcIm5vXCJdIH1dLFxuICAgIFtcIm5cIiwgZmFsc2UsIHsgZmFsc2VWYWx1ZXM6IFtcIk5cIiwgXCJuXCIsIFwibm9cIl0gfV0sXG4gICAgW1wibm9cIiwgZmFsc2UsIHsgZmFsc2VWYWx1ZXM6IFtcIk5cIiwgXCJuXCIsIFwibm9cIl0gfV0sXG4gICAgW1wiZmFsc2VcIiwgbnVsbCwgeyBmYWxzZVZhbHVlczogW1wiTlwiLCBcIm5cIiwgXCJub1wiXSB9XSxcblxuICAgIC8vIEN1c3RvbSB0cnVlIGFuZCBmYWxzZSB2YWx1ZXNcbiAgICBbXCJvdWlcIiwgdHJ1ZSwgeyB0cnVlVmFsdWVzOiBbXCJvdWlcIiwgXCJzaVwiXSwgZmFsc2VWYWx1ZXM6IFtcIm5vblwiLCBcIm5vXCJdIH1dLFxuICAgIFtcInNpXCIsIHRydWUsIHsgdHJ1ZVZhbHVlczogW1wib3VpXCIsIFwic2lcIl0sIGZhbHNlVmFsdWVzOiBbXCJub25cIiwgXCJub1wiXSB9XSxcbiAgICBbXCJub25cIiwgZmFsc2UsIHsgdHJ1ZVZhbHVlczogW1wib3VpXCIsIFwic2lcIl0sIGZhbHNlVmFsdWVzOiBbXCJub25cIiwgXCJub1wiXSB9XSxcbiAgICBbXCJub1wiLCBmYWxzZSwgeyB0cnVlVmFsdWVzOiBbXCJvdWlcIiwgXCJzaVwiXSwgZmFsc2VWYWx1ZXM6IFtcIm5vblwiLCBcIm5vXCJdIH1dLFxuICBdKShcIiVzIC0+ICVzICVvXCIsIGFzeW5jIChjZWxsLCB2YWx1ZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHRhYmxlID0gRGF0YUZyYW1lKHsgbmFtZTogW2NlbGxdIH0pLmxhenkoKVxuICAgIGNvbnN0IHNjaGVtYSA9IHtcbiAgICAgIGZpZWxkczogW3sgbmFtZTogXCJuYW1lXCIsIHR5cGU6IFwiYm9vbGVhblwiIGFzIGNvbnN0LCAuLi5vcHRpb25zIH1dLFxuICAgIH1cblxuICAgIGNvbnN0IGxkZiA9IGF3YWl0IHByb2Nlc3NUYWJsZSh0YWJsZSwgeyBzY2hlbWEgfSlcbiAgICBjb25zdCBkZiA9IGF3YWl0IGxkZi5jb2xsZWN0KClcblxuICAgIGV4cGVjdChkZi50b1JlY29yZHMoKVswXT8ubmFtZSkudG9FcXVhbCh2YWx1ZSlcbiAgfSlcbn0pXG4iXX0=