import { simplifyJSCase, origSimplifyJSCase } from './simplifyJS.js' import { transformToArrayFormCase, transformToObjectFormCase, origSimplifyWithTransformCase } from './transforms.js' import { simplifyWASMCase, storeCoordsCase, loadResultCase } from './simplifyWasm.js' export const chartDependencies = { wasmStack: [storeCoordsCase, loadResultCase, simplifyWASMCase], simplifyJSStack: [ origSimplifyWithTransformCase, transformToArrayFormCase, transformToObjectFormCase ], wasmVsJs: [origSimplifyJSCase, simplifyWASMCase, simplifyJSCase] } const uniqueFilter = (val, idx, self) => self.indexOf(val) === idx export function getChartDependencies(chartNames) { return chartNames .map(name => chartDependencies[name]) .flat() .filter(uniqueFilter) } export function generateCases(data, formState) { const cases = [] const { tolRange, highQual, chart } = formState let params = { data, highQuality: highQual } for (let tol of tolRange) { params = { ...params, tol } for (let BenchCaseClass of chartDependencies[chart]) { cases.push(new BenchCaseClass(params)) } } return cases }