



'''simple docstring'''




def    __lowerCamelCase						(      _lowercase	)   ->    bool:
							return credit_card_number.startswith(("""34""", """35""", """37""", """4""", """5""", """6""")	)



def    __lowerCamelCase						(      _lowercase	)   ->    bool:
							UpperCAmelCase  :	List[str]							  =	credit_card_number
							UpperCAmelCase  :	Tuple							  =	0
							UpperCAmelCase  :	List[Any]							  =	len(_lowercase	) - 2
							for i in range(_lowercase			,       -1			,       -2	):
														#  double the value of every second digit
														UpperCAmelCase  :	Union[str, Any]							  =	int(cc_number[i]	)
														digit *= 2
														# If doubling of a number results in a two digit number
														# i.e greater than 9(e.g., 6 × 2 = 12),
														# then add the digits of the product (e.g., 12: 1 + 2 = 3, 15: 1 + 5 = 6),
														# to get a single digit number.
														if digit > 9:
																					digit %= 1_0
																					digit += 1
														UpperCAmelCase  :	Optional[Any]							  =	cc_number[:i] + str(_lowercase	) + cc_number[i + 1 :]
														total += digit

							# Sum up the remaining digits
							for i in range(len(_lowercase	) - 1			,       -1			,       -2	):
														total += int(cc_number[i]	)

							return total % 1_0 == 0



def    __lowerCamelCase						(      _lowercase	)   ->    bool:
							UpperCAmelCase  :	Dict							  =	F'''{credit_card_number} is an invalid credit card number because'''
							if not credit_card_number.isdigit():
														print(F'''{error_message} it has nonnumerical characters.'''	)
														return False

							if not 1_3 <= len(_lowercase	) <= 1_6:
														print(F'''{error_message} of its length.'''	)
														return False

							if not validate_initial_digits(_lowercase	):
														print(F'''{error_message} of its first two digits.'''	)
														return False

							if not luhn_validation(_lowercase	):
														print(F'''{error_message} it fails the Luhn check.'''	)
														return False

							print(F'''{credit_card_number} is a valid credit card number.'''	)
							return True


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							validate_credit_card_number("""4111111111111111""")
							validate_credit_card_number("""32323""")






'''simple docstring'''




def    __lowerCamelCase						(      _lowercase = "The quick brown fox jumps over the lazy dog"			,       )   ->    bool:
							UpperCAmelCase  :	Union[str, Any]							  =	set()

							# Replace all the whitespace in our sentence
							UpperCAmelCase  :	List[str]							  =	input_str.replace(""" """			,       """"""	)
							for alpha in input_str:
														if "a" <= alpha.lower() <= "z":
																					frequency.add(alpha.lower()	)
							return len(_lowercase	) == 2_6



def    __lowerCamelCase						(      _lowercase = "The quick brown fox jumps over the lazy dog"			,       )   ->    bool:
							UpperCAmelCase  :	Tuple							  =	[False] * 2_6
							for char in input_str:
														if char.islower():
																					UpperCAmelCase  :	Any							  =	True
														elif char.isupper():
																					UpperCAmelCase  :	Union[str, Any]							  =	True
							return all(_lowercase	)



def    __lowerCamelCase						(      _lowercase = "The quick brown fox jumps over the lazy dog"			,       )   ->    bool:
							return len({char for char in input_str.lower() if char.isalpha()}	) == 2_6



def    __lowerCamelCase						(      )   ->    None:
							from timeit import timeit

							UpperCAmelCase  :	str							  =	"""from __main__ import is_pangram, is_pangram_faster, is_pangram_fastest"""
							print(timeit("""is_pangram()"""			,       setup=_lowercase	)	)
							print(timeit("""is_pangram_faster()"""			,       setup=_lowercase	)	)
							print(timeit("""is_pangram_fastest()"""			,       setup=_lowercase	)	)
							# 5.348480500048026, 2.6477354579837993, 1.8470395830227062
							# 5.036091582966037, 2.644472333951853,  1.8869528750656173


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							benchmark()

