def test_check_roman_basic_symbols(self): for integer, numeral in self.known_values: self.assertEqual(RomanNumerals.check_roman_basic_symbols(numeral), True) for numeral in self.illegal_romans_symbols: self.assertEqual(RomanNumerals.check_roman_basic_symbols(numeral), False)
def test_check_roman_subtract_rules(self): for integer, numeral in self.known_values: self.assertEqual(RomanNumerals.check_roman_subtract_rules(numeral), True) for numeral in self.illegal_romans_subtract: self.assertEqual(RomanNumerals.check_roman_subtract_rules(numeral), False)
class RomanNumeralsTest(unittest.TestCase): def setUp(self): self.roman_numerals = RomanNumerals() def test_returns_a_string(self): self.assertIsInstance(self.roman_numerals.convert_from_integer(1), str) def test_one_returns_I(self): self.assertEqual(self.roman_numerals.convert_from_integer(1), 'I') def test_two_returns_II(self): self.assertEqual(self.roman_numerals.convert_from_integer(2), 'II') def test_five_returns_V(self): self.assertEqual(self.roman_numerals.convert_from_integer(5), 'V') def test_ten_returns_X(self): self.assertEqual(self.roman_numerals.convert_from_integer(10), 'X') def test_roman_letters_can_repeat_three_times(self): for number in [1, 10, 100, 1000]: one_roman = self.roman_numerals.convert_from_integer(number) three_roman = self.roman_numerals.convert_from_integer(number * 3) self.assertEqual(three_roman, one_roman * 3)
def test_from(self): self.assertEqual(RomanNumerals.from_roman('XXI'), 21) self.assertEqual(RomanNumerals.from_roman('III'), 3) self.assertEqual(RomanNumerals.from_roman('IV'), 4) self.assertEqual(RomanNumerals.from_roman('MCM'), 1900) self.assertEqual(RomanNumerals.from_roman('MMVIII'), 2008) self.assertEqual(RomanNumerals.from_roman('IL'), 49) self.assertEqual(RomanNumerals.from_roman('DII'), 502)
def translate_ref_to_arabic(self, ref_words_list): # convert amount pattern to abrabic roman_nums = [] for item in ref_words_list: if item in self.words_book: roman_nums.append(self.words_book[item]) else: print('Error amount pattern', item) return None return RomanNumerals.to_arabic(''.join(roman_nums))
class EncodeTestCase(unittest.TestCase): def setUp(self): self.roman_numerals = RomanNumerals() def test_0_returns_empty_string(self): self.assertEqual('', self.roman_numerals.encode(0)) def test_1_through_3(self): self.assertEqual('I', self.roman_numerals.encode(1)) self.assertEqual('II', self.roman_numerals.encode(2)) self.assertEqual('III', self.roman_numerals.encode(3)) def test_4_returns_IV(self): self.assertEqual('IV', self.roman_numerals.encode(4)) def test_5_returns_V(self): self.assertEqual('V', self.roman_numerals.encode(5)) def test_6_through_8(self): self.assertEqual('VI', self.roman_numerals.encode(6)) self.assertEqual('VII', self.roman_numerals.encode(7)) self.assertEqual('VIII', self.roman_numerals.encode(8)) def test_9_returns_IX(self): self.assertEqual('IX', self.roman_numerals.encode(9)) def test_10_returns_X(self): self.assertEqual('X', self.roman_numerals.encode(10)) def test_11_through_13(self): self.assertEqual('XI', self.roman_numerals.encode(11)) self.assertEqual('XII', self.roman_numerals.encode(12)) self.assertEqual('XIII', self.roman_numerals.encode(13)) def test_14_returns_XIV(self): self.assertEqual('XIV', self.roman_numerals.encode(14))
def test_case_1999(self): roman_numerals = RomanNumerals() roman_number = roman_numerals.to_roman('1999') self.assertEqual(roman_number, 'MCMXCIX')
def test_to_arabic(self): for integer, numeral in self.known_values: self.assertEqual(RomanNumerals.to_arabic(numeral), integer)
import numpy as np from roman_numerals import RomanNumerals if __name__ == "__main__": numerals = RomanNumerals() arr = np.arange(1, 10, dtype='i') arr = arr[::-1] for i in arr: print('{} = {}'.format(i, numerals.integer_to_numerals(int(i))))
def test_DCXLIV(self): self.assertEqual(RomanNumerals.numeralize(644), 'DCXLIV')
def test_CLXXVII(self): self.assertEqual(RomanNumerals.numeralize(177), 'CLXXVII')
def test_case_tens_7(self): roman_numerals = RomanNumerals() roman_number = roman_numerals.to_roman_factor('7', 1) self.assertEqual(roman_number, 'LXX')
def test_case_3(self): roman_numerals = RomanNumerals() roman_number = roman_numerals.to_roman('3') self.assertEqual(roman_number, 'III')
def setUp(self): self.roman_numerals = RomanNumerals()
def test_MCMXCIX(self): self.assertEqual(RomanNumerals.numeralize(1999), 'MCMXCIX')
def test_case_5(self): roman_numerals = RomanNumerals() roman_number = roman_numerals.to_roman('5') self.assertEqual(roman_number, 'V')
def test_V(self): self.assertEqual(RomanNumerals.numeralize(5), 'V')
def test_I(self): self.assertEqual(RomanNumerals.numeralize(1), 'I')
def test_MMM(self): self.assertEqual(RomanNumerals.numeralize(3000), 'MMM')
def test_MMXVI(self): self.assertEqual(RomanNumerals.numeralize(2016), 'MMXVI')
def test_case_unit_7(self): roman_numerals = RomanNumerals() roman_number = roman_numerals.to_roman_factor('7', 0) self.assertEqual(roman_number, 'VII')
def test_to_roman(self): self.assertEqual(RomanNumerals.to_roman(1), 'I') self.assertEqual(RomanNumerals.to_roman(3), 'III') self.assertEqual(RomanNumerals.to_roman(4), 'IV') self.assertEqual(RomanNumerals.to_roman(6), 'VI') self.assertEqual(RomanNumerals.to_roman(8), 'VIII') self.assertEqual(RomanNumerals.to_roman(9), 'IX') self.assertEqual(RomanNumerals.to_roman(14), 'XIV') self.assertEqual(RomanNumerals.to_roman(17), 'XVII') self.assertEqual(RomanNumerals.to_roman(19), 'XIX') self.assertEqual(RomanNumerals.to_roman(20), 'XX') self.assertEqual(RomanNumerals.to_roman(22), 'XXII') self.assertEqual(RomanNumerals.to_roman(40), 'XL') self.assertEqual(RomanNumerals.to_roman(490), 'XD') self.assertEqual(RomanNumerals.to_roman(786), 'DCCLXXXVI') self.assertEqual(RomanNumerals.to_roman(900), 'CM') self.assertEqual(RomanNumerals.to_roman(904), 'CMIV') self.assertEqual(RomanNumerals.to_roman(1000), 'M') self.assertEqual(RomanNumerals.to_roman(1990), 'MCMXC') self.assertEqual(RomanNumerals.to_roman(3888), 'MMMDCCCLXXXVIII')