2019-07-14 20:37:26 +02:00

44 lines
1.1 KiB
JavaScript

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
}