diff --git a/roman/roman.go b/roman/roman.go index 8228e56..79db7b5 100644 --- a/roman/roman.go +++ b/roman/roman.go @@ -37,5 +37,13 @@ func ConvertToRoman(arabic int) string { } func ConvertToArabic(roman string) int { - return 1 + var converted int + for _, numeral := range allRomanNumerals { + for strings.HasPrefix(roman, numeral.Symbol) { + converted += numeral.Value + // roman = roman[len(numeral.Symbol):] + roman = strings.TrimPrefix(roman, numeral.Symbol) + } + } + return converted } diff --git a/roman/roman_test.go b/roman/roman_test.go index 2c8edfa..0285808 100644 --- a/roman/roman_test.go +++ b/roman/roman_test.go @@ -54,7 +54,7 @@ func TestRomanNemerals(t *testing.T) { } func TestConvertingToArabic(t *testing.T) { - for _, test := range cases[:1] { + for _, test := range cases { t.Run(fmt.Sprintf("%q gets converted to %d", test.Roman, test.Arabic), func(t *testing.T) { got := ConvertToArabic(test.Roman) want := test.Arabic