checksum method

int checksum(
  1. String first12
)

Compute the checksum digit (0-9) for the first 12 digits. Throws ArgumentError if first12 is not exactly 12 digits.

Implementation

int checksum(String first12) {
  final raw = normalize(first12);
  if (raw.length != 12) {
    throw ArgumentError('checksum requires exactly 12 digits');
  }
  var sum = 0;
  for (var i = 0; i < 12; i++) {
    sum += int.parse(raw[i]) * (13 - i);
  }
  return (11 - (sum % 11)) % 10;
}