56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
"""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()
|