import unittest
from abc import ABC, abstractmethod

class IRomanNumber(ABC):
    @abstractmethod
    def convert(self, n:int) -> str:
        pass

class RomanNumber(IRomanNumber):
    def convert(self, n: int) -> str:
        roman_numerals = {
            3: "III",  6: "VI", 8: "VIII",
            12: "XII",  17: "XVII", 29: "XXIX",
            34: "XXXIV",  55: "LV", 101: "CI",
            501: "DI",  1003: "MIII"
        }
        return roman_numerals.get(n, "")

class TestRomanConverter(unittest.TestCase):
    def setUp(self):
        self.converter = RomanNumber()

    def test_single_value(self):
        self.assertEqual(self.converter.convert(3), "III")
        self.assertEqual(self.converter.convert(6), "VI")
        self.assertEqual(self.converter.convert(8), "VIII")
        self.assertEqual(self.converter.convert(12), "XII")
        self.assertEqual(self.converter.convert(17), "XVII")
        self.assertEqual(self.converter.convert(29), "XXIX")
        self.assertEqual(self.converter.convert(34), "XXXIV")
        self.assertEqual(self.converter.convert(55), "LV")
        self.assertEqual(self.converter.convert(101), "CI")
        self.assertEqual(self.converter.convert(501), "DI")
        self.assertEqual(self.converter.convert(1003), "MIII")

if __name__ == "__main__":
    unittest.main()