Middle+
Implementeer en test de ontbrekende methoden van de kaartvalidatieklasse. De methode voor het controleren van de vervaldatum is al foutloos geïmplementeerd. Voor een gedeeltelijke oplossing is het voldoende om 2 ontbrekende methoden te implementeren die de eigenschappen van de kaart controleren.
sobes.tech AI
Antwoord van AI
Om de ontbrekende methoden in de kaartvalidatieklasse te implementeren, kun je bijvoorbeeld een controle toevoegen op de correctheid van het kaartnummer en een CVV-controle.
Voorbeeld in 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):
# Geïmplementeerd
pass
def validate_number(self):
# Controleer het kaartnummer met het Luhn-algoritme
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 moet 3 of 4 cijfers zijn
return self.cvv.isdigit() and len(self.cvv) in (3, 4)
# Test
validator = CardValidator('4532015112830366', '12/25', '123')
assert validator.validate_number() == True
assert validator.validate_cvv() == True
Op deze manier worden methoden geïmplementeerd die de eigenschappen van de kaart controleren, naast de reeds bestaande datumcontrole.