diff --git a/src/__pycache__/string_utils.cpython-312.pyc b/src/__pycache__/string_utils.cpython-312.pyc index aca1ee1..e7d9724 100644 Binary files a/src/__pycache__/string_utils.cpython-312.pyc and b/src/__pycache__/string_utils.cpython-312.pyc differ diff --git a/src/string_reversal.py b/src/string_reversal.py index 952ccb9..4113150 100644 --- a/src/string_reversal.py +++ b/src/string_reversal.py @@ -1,4 +1,4 @@ -def reverse_string(input_string): +def reverse_string(input_string: str) -> str: """ Reverse the given input string manually, without using slice notation or reverse(). @@ -15,6 +15,10 @@ def reverse_string(input_string): if not isinstance(input_string, str): raise TypeError("Input must be a string") + # Handle empty string case + if not input_string: + return "" + # Convert string to list of characters chars = list(input_string) diff --git a/src/string_utils.py b/src/string_utils.py index 63a44a0..679e567 100644 --- a/src/string_utils.py +++ b/src/string_utils.py @@ -1,4 +1,4 @@ -def reverse_string(input_string): +def reverse_string(input_string: str) -> str: """ Reverse the given string using a manual character-by-character approach. @@ -15,6 +15,10 @@ def reverse_string(input_string): if not isinstance(input_string, str): raise TypeError("Input must be a string") + # Handle empty string case + if not input_string: + return "" + # Use list to manually reverse the string reversed_chars = [] for i in range(len(input_string) - 1, -1, -1): diff --git a/tests/__pycache__/test_string_utils.cpython-312-pytest-8.3.5.pyc b/tests/__pycache__/test_string_utils.cpython-312-pytest-8.3.5.pyc index 3246c7f..945ab3b 100644 Binary files a/tests/__pycache__/test_string_utils.cpython-312-pytest-8.3.5.pyc and b/tests/__pycache__/test_string_utils.cpython-312-pytest-8.3.5.pyc differ diff --git a/tests/test_string_reversal.py b/tests/test_string_reversal.py index 5398e44..61d360c 100644 --- a/tests/test_string_reversal.py +++ b/tests/test_string_reversal.py @@ -4,11 +4,16 @@ def test_reverse_standard_string(): """Test reversing a standard string.""" assert reverse_string("hello") == "olleh" + assert reverse_string("python") == "nohtyp" def test_reverse_empty_string(): """Test reversing an empty string.""" assert reverse_string("") == "" +def test_reverse_single_char_string(): + """Test reversing a single character string.""" + assert reverse_string("a") == "a" + def test_reverse_palindrome(): """Test reversing a palindrome string.""" assert reverse_string("racecar") == "racecar"