@dpkit/table
Version:
Data Package implementation in TypeScript.
51 lines • 8.68 kB
JavaScript
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=