fast-luhn vs luhn vs luhn-alg