import pytest from src.enums.delimiters import Delimiter from src.utils.string_utils import extract_text_from_delimiters class TestExtractTextFromDelimiters: # Test case for valid inputs def test_pipe_delimiter_match_first_position(self): raw_text = "Here is the answer |this is a pipe answer| and |more text.|" result = extract_text_from_delimiters(raw_text,delimiter=Delimiter.PIPE,match_index=0) assert result == "this is a pipe answer" def test_pipe_delimiter_match_last_position(self): raw_text = "Here is the answer |this is a pipe answer| and |more text.|" result = extract_text_from_delimiters(raw_text,delimiter=Delimiter.PIPE,match_index=-1) assert result == "more text." def test_pipe_delimiter_match_any_position(self): raw_text = "|Here| is the answer |this is a pipe answer| and |more text.|" result = extract_text_from_delimiters(raw_text,delimiter=Delimiter.PIPE,match_index=1) assert result == "this is a pipe answer" def test_backtick_delimiter_match_first_position(self): raw_text = "Here is the answer `this is a backtick answer` and `more text.`" result = extract_text_from_delimiters(raw_text, delimiter=Delimiter.BACKTICK, match_index=0) assert result == "this is a backtick answer" def test_backtick_delimiter_match_last_position(self): raw_text = "Here is the answer `this is a backtick answer` and `more text.`" result = extract_text_from_delimiters(raw_text, delimiter=Delimiter.BACKTICK, match_index=-1) assert result == "more text." def test_backtick_delimiter_match_any_position(self): raw_text = "`Here` is the answer `this` is a `backtick answer` and `more text.`" result = extract_text_from_delimiters(raw_text, delimiter=Delimiter.BACKTICK, match_index=2) assert result == "backtick answer" def test_triple_backtick_delimiter_match_first_position(self): raw_text = "Here is the answer ```this is a triple backtick answer``` and more text." result = extract_text_from_delimiters(raw_text, delimiter=Delimiter.TRIPLE_BACKTICK, match_index=0) assert result == "this is a triple backtick answer" def test_triple_backtick_delimiter_match_last_position(self): raw_text = "Here is the answer ```this``` is a ```triple``` backtick ```answer``` and more text." result = extract_text_from_delimiters(raw_text, delimiter=Delimiter.TRIPLE_BACKTICK, match_index=-1) assert result == "answer" def test_triple_backtick_delimiter_match_any_position(self): raw_text = "```Here``` is the answer ```this is a triple backtick answer``` and ```more text.```" result = extract_text_from_delimiters(raw_text, delimiter=Delimiter.TRIPLE_BACKTICK, match_index=1) assert result == "this is a triple backtick answer"