getCheckDigit static method

int getCheckDigit(
  1. String input
)

Implementation

static int getCheckDigit(String input) {
  final checkSum = input.codeUnits
      .map((c) {
        if (_isCapitalLetter(c)) {
          return c - _capitalA + 10;
        }
        if (_isDigit(c)) {
          return c - _number0;
        }
        return 0;
      })
      .toList()
      .asMap()
      .map((i, v) => MapEntry(i, v * _weights[i % _weights.length]))
      .values
      .reduce((value, element) => value + element);

  return checkSum % 10;
}