Skip to content

Instantly share code, notes, and snippets.

@flavioamieiro
Created January 25, 2013 19:03
Show Gist options
  • Save flavioamieiro/4636921 to your computer and use it in GitHub Desktop.
Save flavioamieiro/4636921 to your computer and use it in GitHub Desktop.
dicionario = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
def eh_o_ultimo_caractere(indice,romano):
return indice == (len(romano) - 1)
def retorna_o_valor_do_proximo_caractere(indice, romano):
if eh_o_ultimo_caractere(indice,romano):
valor_do_proximo_caracter = 0
else:
valor_do_proximo_caracter = dicionario[romano[indice + 1]]
return valor_do_proximo_caracter
def converte(romano):
soma_romano=0
for indice, caracter in enumerate(romano):
valor_do_caracter_atual = dicionario[caracter]
valor_do_proximo_caracter = retorna_o_valor_do_proximo_caractere(indice, romano)
if valor_do_caracter_atual < valor_do_proximo_caracter:
soma_romano -= valor_do_caracter_atual
else:
soma_romano += valor_do_caracter_atual
return soma_romano
import unittest
from numeros_romanos import converte
class TestRomanos(unittest.TestCase):
def test_I_equals_1(self):
self.assertEquals(converte("I"), 1)
def test_V_equals_5(self):
self.assertEquals(converte("V"), 5)
def test_X_equals_10(self):
self.assertEquals(converte("X"), 10)
def test_L_equals_50(self):
self.assertEquals(converte("L"), 50)
def test_C_equals_100(self):
self.assertEquals(converte("C"), 100)
def test_D_equals_500(self):
self.assertEquals(converte("D"), 500)
def test_M_equals_1000(self):
self.assertEquals(converte("M"), 1000)
def test_II_equals_2(self):
self.assertEquals(converte("II"), 2)
def test_III_equals_3(self):
self.assertEquals(converte("III"), 3)
def test_IV_equals_4(self):
self.assertEquals(converte("IV"), 4)
def test_XV_equals_15(self):
self.assertEquals(converte("XV"), 15)
def test_VI_equals_6(self):
self.assertEquals(converte("VI"), 6)
def test_VII_equals_7(self):
self.assertEquals(converte("VII"), 7)
def test_VIII_equals_8(self):
self.assertEquals(converte("VIII"), 8)
def test_IX_equals_9(self):
self.assertEquals(converte("IX"), 9)
def test_MDCCLXIII_equals_1763(self):
self.assertEquals(converte("MDCCLXIII"), 1763)
def test_MCMXC_equals_1990(self):
self.assertEquals(converte("MCMXC"), 1990)
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment