computeDiffs static method

List<int> computeDiffs(
  1. List<int> original,
  2. List<int> improved,
  3. int threshold
)

Implementation

static List<int> computeDiffs(
    List<int> original, List<int> improved, int threshold) {
  final originalOrdered =
      List<int>.from(original.where((m) => m > threshold), growable: false)
        ..sort();
  final improvedOrdered =
      List<int>.from(improved.where((m) => m > threshold), growable: false)
        ..sort();
  final length = min(originalOrdered.length, improvedOrdered.length);

  return List<int>.generate(length, (index) {
    // Take two measurements that are at the same position
    // in the sorted lists.
    final measurementOriginal =
        originalOrdered[(index / length * originalOrdered.length).round()];
    final measurementImproved =
        improvedOrdered[(index / length * improvedOrdered.length).round()];
    return measurementImproved - measurementOriginal;
  });
}