diff --git a/tests/test_converter.py b/tests/test_converter.py new file mode 100644 index 0000000..f11ec16 --- /dev/null +++ b/tests/test_converter.py @@ -0,0 +1,55 @@ +"""Tests for the converter module.""" + +import pytest + +from regex_humanizer.converter import convert_to_english, generate_description + + +class TestConvertToEnglish: + def test_convert_literal(self): + result = convert_to_english("hello") + assert "hello" in result.lower() or "letter" in result.lower() + + def test_convert_character_class(self): + result = convert_to_english("[abc]") + assert "any" in result.lower() or "character" in result.lower() + + def test_convert_inverted_class(self): + result = convert_to_english("[^abc]") + assert "except" in result.lower() + + def test_convert_quantifier_star(self): + result = convert_to_english("a*") + assert "zero" in result.lower() or "more" in result.lower() + + def test_convert_quantifier_plus(self): + result = convert_to_english("a+") + assert "one" in result.lower() or "more" in result.lower() + + def test_convert_quantifier_question(self): + result = convert_to_english("a?") + assert "optionally" in result.lower() or "zero" in result.lower() + + def test_convert_anchors(self): + result = convert_to_english("^start$") + assert "start" in result.lower() and "end" in result.lower() + + def test_convert_alternation(self): + result = convert_to_english("a|b") + assert "or" in result.lower() + + def test_convert_group(self): + result = convert_to_english("(abc)") + assert "group" in result.lower() + + def test_convert_special_sequence_digit(self): + result = convert_to_english(r"\d") + assert "digit" in result.lower() + + def test_convert_special_sequence_word(self): + result = convert_to_english(r"\w") + assert "word" in result.lower() + + def test_convert_email_pattern(self): + result = convert_to_english(r"^\w+@[a-z]+\.[a]+$") + assert "start" in result.lower() and "end" in result.lower()