diff --git a/benchmarking/src/components/chart.js b/benchmarking/src/components/chart.js
index 37ad874..f792276 100644
--- a/benchmarking/src/components/chart.js
+++ b/benchmarking/src/components/chart.js
@@ -4,6 +4,8 @@ import debounceRender from 'react-debounce-render'
import platform from 'platform'
import { downloadAsJson } from '../../../lib/json-download/index.js'
+
+import { datasetNames } from '../data/index.js'
import { datasetTemplates, genOptions, beautifyLabels } from './chartOptions.js'
export class Chart extends React.Component {
@@ -11,7 +13,6 @@ export class Chart extends React.Component {
let { formState, stats, nodeData } = this.props
let { tolRange, chart } = formState
tolRange = tolRange || []
-
let labels = beautifyLabels(tolRange)
// let labels = tolRange.map(x => Math.round(x * 1000) / 1000)
let datasets = Object.keys(stats).map(name => ({
@@ -19,15 +20,9 @@ export class Chart extends React.Component {
data: stats[name]
}))
datasets.push({ ...datasetTemplates.numberOfNodes, data: nodeData })
- datasets.push({
- label: `High quality mode: ${formState.highQual}`,
- data: []
- })
- datasets.push({
- label: `Platform: ${platform.description}`,
- data: []
- })
let data = { datasets, labels }
+ addLegendEntry(data, `High quality mode: ${formState.highQual}`)
+ addLegendEntry(data, `Platform: ${platform.description}`)
return (
Chart
@@ -117,7 +112,7 @@ function calculateTimeDelta(whole, arr1, arr2) {
}
function modifyDataArrays(data, exec, pre, after, newDatasetLabel) {
- if (getDataset(data, exec)) {
+ if (getDataset(data, exec) && getDataset(data, pre)) {
data.datasets.splice(1, 0, {
id: 'execution',
backgroundColor: 'red',
@@ -208,3 +203,12 @@ function saveChart(chartRef) {
)
downloadAsJson(config, 'config.json')
}
+
+/**
+ * Adds an empty dataset to attach info to legend
+ * @param {} data
+ * @param {*} label
+ */
+function addLegendEntry(data, label) {
+ data.datasets.push({ label, data: [] })
+}
diff --git a/benchmarking/src/components/form.js b/benchmarking/src/components/form.js
index 0e22d2c..ba99df2 100644
--- a/benchmarking/src/components/form.js
+++ b/benchmarking/src/components/form.js
@@ -1,5 +1,7 @@
import React, { Component } from 'react'
+import { datasetNames } from '../data/index.js'
+
export class Form extends Component {
constructor(props) {
super(props)
@@ -12,7 +14,7 @@ export class Form extends Component {
benchMethod: 'iteration',
iterations: 10,
timeToRun: 200,
- dataset: 'large',
+ dataset: Object.keys(datasetNames)[0],
debouncedChart: false
}
@@ -56,9 +58,11 @@ export class Form extends Component {
value={this.state.dataset}
onChange={this.handleInputChange}
>
-
-
-
+ {Object.keys(datasetNames).map((key, idx) => (
+
+ ))}
diff --git a/benchmarking/src/components/runner.js b/benchmarking/src/components/runner.js
index 3a96850..26a13cd 100644
--- a/benchmarking/src/components/runner.js
+++ b/benchmarking/src/components/runner.js
@@ -33,18 +33,20 @@ export class BenchmarkRunner extends Component {
this.props.onStatsChange(this.suite.stats)
}
- componentDidUpdate(prevProps, prevState) {
+ async componentDidUpdate(prevProps, prevState) {
if (prevState !== this.state) {
+ // state changed -> internal update
this.props.onStatsChange(this.suite.stats)
}
if (prevProps.formState !== this.props.formState) {
- this.initializeSuite()
+ // props changed -> update from parent
+ await this.initializeSuite()
this.suite.stop()
}
}
- initializeSuite() {
- let data = dataSelector[this.props.formState.dataset]
+ async initializeSuite() {
+ let data = await dataSelector(this.props.formState.dataset)
this.suite.setBenchmarkType(benchmarkTypeSelector(this.props.formState))
this.suite.setCases(generateCases(data, this.props.formState))
}
@@ -87,8 +89,8 @@ export class BenchmarkRunner extends Component {
{this.startButtonShown() && (