Ejercicio: Algoritmo de Luhn
Algoritmo de Luhn
El algoritmo de Luhn se usa para validar números de tarjetas de crédito. El algoritmo toma una cadena como entrada y hace lo siguiente para validar el número de la tarjeta de crédito:
-
Ignora todos los espacios. Rechaza los números con menos de dos dígitos.
-
De derecha a izquierda, duplica cada dos cifras: en el caso del número
1234
, se duplica el3
y el1
. En el caso del número98765
, se duplica el6
y el8
. -
Después de duplicar un dígito, se suman los dígitos si el resultado es mayor a 9. Por tanto, si duplicas
7
, pasará a ser14
, lo cual pasará a ser1 +4 = 5
. -
Suma todos los dígitos, no duplicados y duplicados.
-
El número de la tarjeta de crédito es válido si la suma termina en
0
.
El código proporcionado ofrece una implementación errónea del algoritmo de Luhn, junto con dos pruebas unitarias básicas que confirman que la mayor parte del algoritmo se ha implementado correctamente.
Copia el fragmento de código que aparece más abajo en la página a https://play.rust-lang.org/ y escribe pruebas adicionales para descubrir y arreglar errores en la implementación proveída.