Sobes.tech
Middle+

Implémenter et tester les méthodes manquantes de la classe de validation de la carte. La méthode de vérification de l'expiration de la date est déjà implémentée sans erreur. Pour une solution partielle, il suffit d'implémenter 2 méthodes manquantes qui vérifient les propriétés de la carte.

sobes.tech IA

Réponse de l'IA

Pour implémenter les méthodes manquantes de la classe de validation de carte, vous pouvez ajouter, par exemple, une vérification de la validité du numéro de carte et une vérification du CVV.

Exemple 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):
        # Implémenté
        pass

    def validate_number(self):
        # Vérification du numéro de carte selon l'algorithme 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):
        # Le CVV doit comporter 3 ou 4 chiffres
        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

Ainsi, des méthodes vérifient les propriétés de la carte, en plus de la vérification déjà existante de la date.