Middle+
Implementar y probar los métodos faltantes de la clase de validación de tarjetas. El método de verificación de expiración de la fecha ya está implementado sin errores. Para una solución parcial, basta con implementar 2 métodos faltantes que verifican las propiedades de la tarjeta.
sobes.tech AI
Respuesta de la IA
Para implementar los métodos faltantes de la clase de validación de tarjetas, se puede agregar, por ejemplo, una verificación de la corrección del número de tarjeta y una verificación del CVV.
Ejemplo en Python:
class CardValidator:
def __init__(self, number, expiry_date, cvv):
self.number = number
self.expiry_date = expiry_date
self.cvv = cvv
def validate_expiry_date(self):
# Implementado
pass
def validate_number(self):
# Verificación del número de tarjeta mediante el algoritmo de Luhn
def luhn_checksum(card_number):
def digits_of(n):
return [int(d) for d in str(n)]
digits = digits_of(card_number)
odd_digits = digits[-1::-2]
even_digits = digits[-2::-2]
checksum = sum(odd_digits)
for d in even_digits:
checksum += sum(digits_of(d*2))
return checksum % 10
return luhn_checksum(self.number) == 0
def validate_cvv(self):
# CVV debe ser de 3 o 4 dígitos
return self.cvv.isdigit() and len(self.cvv) in (3, 4)
# Prueba
validator = CardValidator('4532015112830366', '12/25', '123')
assert validator.validate_number() == True
assert validator.validate_cvv() == True
De esta manera, se implementan métodos que verifican las propiedades de la tarjeta, además de la ya existente verificación de la fecha.