unchangedVerbsOf function

Map<String, int> unchangedVerbsOf(
  1. Iterable<ScenarioRunStep> steps
)

Which verbs steps' unchanged ones ran, with how many each, most first — what ScenarioRunOutcome.unchangedVerbs says of a scenario.

Implementation

Map<String, int> unchangedVerbsOf(Iterable<ScenarioRunStep> steps) {
  var counts = <String, int>{};
  for (var step in steps) {
    if (!step.unchanged) continue;
    var verb = step.verb ?? 'step';
    counts[verb] = (counts[verb] ?? 0) + 1;
  }
  var ordered = counts.entries.toList()
    ..sort((a, b) => b.value.compareTo(a.value));
  return Map.fromEntries(ordered);
}