def verify_all_upper_or_all_lower_or_is_capitalized(word: str) -> bool:
upper = sum(1 for ch in word if ch.isupper())
lower = sum(1 for ch in word if ch.islower())
# Case 1: all lowercase
if upper == 0:
return True
# Case 2: all uppercase
if lower == 0:
return True
# Case 3: capitalized (only first letter uppercase)
if upper == 1 and word[0].isupper():
return True
# Otherwise, mixed casing
return False
def run_test(word: str) -> None:
print(f'Testing word: "{word}"')
if verify_all_upper_or_all_lower_or_is_capitalized(word):
print("OK\n")
else:
print("Error\n")
run_test("PROGRAMMING")
run_test("programming")
run_test("Programming")
run_test("ProGramMing")
'''
run:
Testing word: "PROGRAMMING"
OK
Testing word: "programming"
OK
Testing word: "Programming"
OK
Testing word: "ProGramMing"
Error
'''