import { createRandomIntegerGenerator, createRandomStringGenerator, generateMapData } from "../../src/ts/mmviz-data/generator"; import { getTransformsDataPipeline } from "../../src/ts/mmviz-data/pipeline"; function generateData(){ const dataLength = 100, minValue = -100, maxValue = 100, randomIntegerGenerator = createRandomIntegerGenerator(minValue, maxValue), categoryGenerator = createRandomStringGenerator(5, 10), generatorMap = { category: categoryGenerator, numerical: randomIntegerGenerator } ; return generateMapData(dataLength, generatorMap); } test("Test TransformsDataPipeline Category Filter", () => { const dataArray = generateData(), datum = dataArray[0] ; const transforms = { filters: { categoryFilter: { column: "category", type: "categorical", value: datum.category } } }; const dataPipeline = getTransformsDataPipeline(transforms); const transformedDataArray = dataPipeline.transform(dataArray); // console.log(transformedDataArray); expect(transformedDataArray.length > 0).toBeTruthy(); for (const d of transformedDataArray){ expect(d.category === datum.category).toBeTruthy(); } }); test("Test TransformsDataPipeline Range Filter", () => { const dataArray = generateData(), datum = dataArray[0] ; const transforms = { filters: { rangeFilter: { column: "numerical", type: "range", minRange: datum.numerical, maxRange: datum.numerical } } }; const dataPipeline = getTransformsDataPipeline(transforms); const transformedDataArray = dataPipeline.transform(dataArray); // console.log(transformedDataArray); expect(transformedDataArray.length > 0).toBeTruthy(); for (const d of transformedDataArray){ expect(d.numerical === datum.numerical).toBeTruthy(); } }); test("Test TransformsDataPipeline Numerical Order", () => { const dataArray = generateData(); const transforms = { order: { column: "numerical" } }; const dataPipeline = getTransformsDataPipeline(transforms); // console.log(dataPipeline); const transformedDataArray = dataPipeline.transform(dataArray); // console.log(transformedDataArray); const datumMax = transformedDataArray[0], datumMin = transformedDataArray[transformedDataArray.length - 1]; expect(datumMax.numerical > datumMin.numerical).toBeTruthy(); }); test("Test TransformsDataPipeline Categorical Order", () => { const dataArray = generateData(); const transforms = { order: { column: "category" } }; const dataPipeline = getTransformsDataPipeline(transforms); // console.log(dataPipeline); const transformedDataArray = dataPipeline.transform(dataArray); // console.log(transformedDataArray); const datumMax = transformedDataArray[0], datumMin = transformedDataArray[transformedDataArray.length - 1]; expect(datumMax.category > datumMin.category).toBeTruthy(); });