Skip to content

Instantly share code, notes, and snippets.

@frenetic
Created March 21, 2015 20:53
Show Gist options
  • Save frenetic/f3b2398c4e04a5235e50 to your computer and use it in GitHub Desktop.
Save frenetic/f3b2398c4e04a5235e50 to your computer and use it in GitHub Desktop.
Dojo no CESAR 2015-03-21
# recebe um numero e retorna o algorismo romano
def dojo(input):
# Letras: C, L, X, V, I
# tuplas = [('C', 100),('XC', 90),('L', 50),('XL', 40),('X', 10),('IX', 9),('V', 5),('IV', 4),('I', 1)]
tuplas = [('C', 100),('L', 50),('X', 10),('V', 5),('I', 1)]
resultado = ''
for romano, numero in tuplas:
res = input / numero
input = input % numero
if res < 4:
resultado += romano * res
else:
resultado += ant + romano
ant = romano
# while input >= numero:
# resultado = resultado + romano
# input = input - numero
return resultado
import unittest
from dojo import dojo
class TestDojo(unittest.TestCase):
def test_case_0(self):
self.assertEqual(dojo(0), '')
def test_case_1(self):
self.assertEqual(dojo(1), 'I')
def test_case_2(self):
self.assertEqual(dojo(2), 'II')
def test_case_3(self):
self.assertEqual(dojo(3), 'III')
def test_case_4(self):
self.assertEqual(dojo(4), 'IV')
def test_case_5(self):
self.assertEqual(dojo(5), 'V')
def test_case_6(self):
self.assertEqual(dojo(6), 'VI')
def test_case_7(self):
self.assertEqual(dojo(7), 'VII')
def test_case_8(self):
self.assertEqual(dojo(8), 'VIII')
def test_case_9(self):
self.assertEqual(dojo(9), 'IX')
def test_case_10(self):
self.assertEqual(dojo(10), 'X')
def test_case_11(self):
self.assertEqual(dojo(11), 'XI')
def test_case_12(self):
self.assertEqual(dojo(12), 'XII')
def test_case_13(self):
self.assertEqual(dojo(13), 'XIII')
def test_case_14(self):
self.assertEqual(dojo(14), 'XIV')
def test_case_16(self):
self.assertEqual(dojo(16), 'XVI')
def test_case_29(self):
self.assertEqual(dojo(29), 'XXIX')
def test_case_39(self):
self.assertEqual(dojo(39), 'XXXIX')
def test_case_40(self):
self.assertEqual(dojo(40), 'XL')
def test_case_41(self):
self.assertEqual(dojo(41), 'XLI')
def test_case_50(self):
self.assertEqual(dojo(50), 'L')
def test_case_88(self):
self.assertEqual(dojo(88), 'LXXXVIII')
def test_case_89(self):
self.assertEqual(dojo(89), 'LXXXIX')
def test_case_90(self):
self.assertEqual(dojo(90), 'XC')
def test_case_97(self):
self.assertEqual(dojo(97), 'XCVII')
def test_case_100(self):
self.assertEqual(dojo(100), 'C')
if __name__ == '__main__':
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment