isFinderPattern static method

bool isFinderPattern(
  1. List<int> counters
)

Implementation

static bool isFinderPattern(List<int> counters) {
  final firstTwoSum = counters[0] + counters[1];
  final sum = firstTwoSum + counters[2] + counters[3];
  final ratio = firstTwoSum / sum;
  if (ratio >= _MIN_FINDER_PATTERN_RATIO &&
      ratio <= _MAX_FINDER_PATTERN_RATIO) {
    // passes ratio test in spec, but see if the counts are unreasonable
    int minCounter = MathUtils.MAX_VALUE;
    int maxCounter = MathUtils.MIN_VALUE;
    for (int counter in counters) {
      if (counter > maxCounter) {
        maxCounter = counter;
      }
      if (counter < minCounter) {
        minCounter = counter;
      }
    }
    return maxCounter < 10 * minCounter;
  }
  return false;
}