diff --git a/smash/web/algorithm/luhn_algorithm.py b/smash/web/algorithm/luhn_algorithm.py index c752bc333716c2b7e4081bae0875cdd2911ee02d..ae550c43d6e370c68107e95bafc3b7686f8395d5 100644 --- a/smash/web/algorithm/luhn_algorithm.py +++ b/smash/web/algorithm/luhn_algorithm.py @@ -1,12 +1,14 @@ +def digits_of(n): + return [int(d) for d in str(n)] + + class LuhnAlgorithm(object): + def __init__(self): pass @staticmethod 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] @@ -19,3 +21,7 @@ class LuhnAlgorithm(object): @staticmethod def is_luhn_valid(card_number): return LuhnAlgorithm.luhn_checksum(card_number) == 0 + + @staticmethod + def calculate_luhn_checksum(card_number): + return (10 - LuhnAlgorithm.luhn_checksum(card_number + '0')) % 10