Files
lynchmark.com/tests/6_csv_processor/outputs/google_gemini-3-pro-preview TEMP_0.35.js

16 lines
571 B
JavaScript

const processCSV = async (str, { filterColumn: fc, filterValue: fv, groupBy: gb, aggregateColumn: ac, operation: op }) => {
const { csvParse, rollups, sum } = await import('https://esm.sh/d3@7');
const num = v => +v || 0;
return rollups(
csvParse(str).filter(d => d[fc] == fv),
g => {
if (op === 'count') return g.length;
const t = sum(g, d => num(d[ac]));
return op === 'sum' ? t : t / g.length;
},
d => d[gb]
).map(([k, v]) => ({ [gb]: k, result: v }));
};
export default processCSV;
// Generation time: 40.784s
// Result: PASS