Created
March 21, 2015 20:53
-
-
Save frenetic/f3b2398c4e04a5235e50 to your computer and use it in GitHub Desktop.
Dojo no CESAR 2015-03-21
This file contains 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
# 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 |
This file contains 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 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