Skip to content

Commit

Permalink
Fix tasks sorting
Browse files Browse the repository at this point in the history
  • Loading branch information
ehmicky committed Aug 18, 2019
1 parent 8de6808 commit 81f878e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion src/info/group.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export const addGroups = function(iterations) {

// The fastest tasks will be first, then the fastest iterations within each
// task (regardless of variations/commands)
sortBy(iterationsA, ['task', 'stats.median'])
sortBy(iterationsA, ['task', 'variation', 'command'])

return { tasks, variations, commands, iterations: iterationsA }
}
Expand Down
21 changes: 15 additions & 6 deletions src/print/fastest.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,29 @@ import { groupBy } from '../utils/group.js'
// Add `iteration.fastest` boolean indicating fastest iterations,
// for each variation+command combination, among all tasks
export const addFastestIterations = function(iterations) {
const iterationsGroups = Object.values(
const minMedians = Object.entries(
groupBy(iterations, ['variation', 'command']),
).map(getMinMedian)
const minMediansA = Object.fromEntries(minMedians)

return iterations.map(iteration =>
addFastestIteration({ iteration, minMedians: minMediansA }),
)
return iterationsGroups.flatMap(addFastestIteration)
}

const addFastestIteration = function(iterations) {
const getMinMedian = function([groupId, iterations]) {
const medians = iterations.map(getIterationMedian)
const minMedian = Math.min(...medians)
return iterations.map(iteration => addFastest(iteration, minMedian))
return [groupId, minMedian]
}

const addFastest = function(iteration, minMedian) {
const fastest = getIterationMedian(iteration) === minMedian
const addFastestIteration = function({
iteration,
iteration: { variation, command },
minMedians,
}) {
const groupId = `${variation}\n${command}`
const fastest = getIterationMedian(iteration) === minMedians[groupId]
return { ...iteration, fastest }
}

Expand Down

0 comments on commit 81f878e

Please sign in to comment.