computeDelta function
Computes the delta for each matching metric in test
and baseline
, and
returns a new BenchmarkResults object where each BenchmarkScore contains
a delta
value.
Implementation
BenchmarkResults computeDelta(
BenchmarkResults baseline,
BenchmarkResults test,
) {
final Map<String, List<BenchmarkScore>> delta =
<String, List<BenchmarkScore>>{};
for (final String benchmarkName in test.scores.keys) {
final List<BenchmarkScore> testScores = test.scores[benchmarkName]!;
final List<BenchmarkScore>? baselineScores = baseline.scores[benchmarkName];
delta[benchmarkName] = testScores.map<BenchmarkScore>(
(BenchmarkScore testScore) {
final BenchmarkScore? baselineScore = baselineScores?.firstWhereOrNull(
(BenchmarkScore s) => s.metric == testScore.metric);
return testScore._copyWith(
delta: baselineScore == null
? null
: (testScore.value - baselineScore.value).toDouble(),
);
},
).toList();
}
return BenchmarkResults(delta);
}