isValid static method

bool isValid(
  1. String cpf
)

Implementation

static bool isValid(String cpf) {
  final digits = stringAsDigits(cpf);

  if (digits.length != 11) {
    return false;
  }

  final digitoVerificador1 = digits.elementAt(9);
  final digitoVerificador2 = digits.elementAt(10);
  final sum1 = ([
            for (var i = 1; i <= 9; i++) digits.elementAt(i - 1) * (11 - i)
          ].fold(0, (x, y) => x + y) *
          10) %
      11;
  final sum2 = ([
            for (var i = 1; i <= 10; i++) digits.elementAt(i - 1) * (12 - i)
          ].fold(0, (x, y) => x + y) *
          10) %
      11;

  final dv1Valid = ((sum1 == 10 || sum1 == 11) && 0 == digitoVerificador1) ||
      (sum1 == digitoVerificador1);
  final dv2valid = ((sum2 == 10 || sum2 == 11) && 0 == digitoVerificador2) ||
      (sum2 == digitoVerificador2);

  return dv1Valid && dv2valid;
}