Write two functions in Python. One that converts a number to a Roman Numeral (convertToRoman) and the other converts it back to a number (convertFromRoman).
I. Given a number, return a Roman Numeral string. (20 points)
1. Any number <= 0, throws "Error - Too Small".
2. Any number > 3,999, throws "Error - Too Large".
3. Any value that is not a number, throws "Error - Not a Number".
4. Use standard values (en.wikipedia.org/wiki/Roman numerals).
1 = I
2 = II
3 = III
4 = IV
5 = V
6 = VI
7 = VII
8 = VIII
9 = IX
10 = X
20 = XX
30 = XXX
40 = XL
50 = L
60 = LX
70 = LXX
80 = LXXX
90 = XC
100 = C
200 = CC
300 = CCC
400 = CD
500 = D
600 = DC
700 = DCC
800 = DCCC
900 = CM
1000 = M
2000 = MM
3000 = MMM
Examples:
convertToRoman(812) returns DCCCXII
convertToRoman(49) returns XLIX
convertToRoman(5000) throws "Error - Too Large"
II. Given a Roman Numeral String, parse it and return the number. If it does not match a legal number from above (in the range 1 to 3,999), throw "Error" (40 points)
Examples:
convertFromRoman("CCCXIV") returns 314
convertFromRoman("MCMXCIX") returns 1999
convertFromRoman("CXXXXI") throws "Error"
convertFromRoman("I") throws "Error"
convertFromRoman("MMMM") throws "Error