diff --git a/larky/src/main/resources/vendor/luhn.star b/larky/src/main/resources/vendor/luhn.star index b66a79e53..13de65091 100644 --- a/larky/src/main/resources/vendor/luhn.star +++ b/larky/src/main/resources/vendor/luhn.star @@ -21,6 +21,8 @@ def verify(num): >>> verify('534618613411236') False """ + if not isdigit(num): + return False checksum = int(num[-1]) cardSum = int(_luhn_summation(num,-2)) return ((cardSum + checksum) % 10) == 0 diff --git a/larky/src/test/resources/vendor_tests/luhn/luhn_test.star b/larky/src/test/resources/vendor_tests/luhn/luhn_test.star index 4353d838f..94fa16fa0 100644 --- a/larky/src/test/resources/vendor_tests/luhn/luhn_test.star +++ b/larky/src/test/resources/vendor_tests/luhn/luhn_test.star @@ -8,6 +8,9 @@ def test_valid(): def test_invalid(): asserts.assert_that(luhn.verify('4222222222222222')).is_equal_to(False) +def test_nonumeric(): + asserts.assert_that(luhn.verify('422222222x22222')).is_equal_to(False) + def test_generate(): asserts.assert_that(luhn.generate('7992739871')).is_equal_to(3)