import pytest from roman import convert_to_number def test_valid_single_numerals(): assert convert_to_number("I") == "I = 1" assert convert_to_number("V") == "V = 5" assert convert_to_number("X") == "X = 10" assert convert_to_number("C") == "C = 100" assert convert_to_number("M") == "M = 1000" def test_valid_multiple_numerals(): assert convert_to_number("IV") == "IV = 1 + 5 = 6" assert convert_to_number("XCM") == "XCM = 10 + 100 + 1000 = 1110" assert convert_to_number("MCMXCIV") == "MCMXCIV = 1000 + 100 + 1000 + 10 + 100 + 1 + 5 = 2216" def test_lowercase_input(): assert convert_to_number("ivxcm") == "IVXCM = 1 + 5 + 10 + 100 + 1000 = 1116" def test_mixed_case_input(): assert convert_to_number("iVxCm") == "IVXCM = 1 + 5 + 10 + 100 + 1000 = 1116" def test_invalid_characters(): assert convert_to_number("EFGH") == "Invalid input" assert convert_to_number("123") == "Invalid input" assert convert_to_number("!@#") == "Invalid input" def test_mixed_valid_and_invalid_characters(): assert convert_to_number("AIXB") == "IX = 1 + 10 = 11" assert convert_to_number("M1C2") == "MC = 1000 + 100 = 1100" def test_empty_string(): assert convert_to_number("") == "Invalid input" def test_only_spaces(): assert convert_to_number(" ") == "Invalid input" def test_spaces_and_valid_numerals(): assert convert_to_number(" I V ") == "IV = 1 + 5 = 6"