Created
January 25, 2013 19:03
-
-
Save flavioamieiro/4636921 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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