35 lines
865 B
Go
35 lines
865 B
Go
package roman
|
|
|
|
import "testing"
|
|
|
|
func TestRomanNemerals(t *testing.T) {
|
|
cases := []struct {
|
|
Description string
|
|
Arabic int
|
|
Want string
|
|
}{
|
|
{"1 gets converted to I", 1, "I"},
|
|
{"2 gets converted to II", 2, "II"},
|
|
{"3 gets converted to III", 3, "III"},
|
|
{"4 gets converted to IV", 4, "IV"},
|
|
{"5 gets converted to V", 5, "V"},
|
|
{"7 gets converted to VII", 7, "VII"},
|
|
{"9 gets converted to IX", 9, "IX"},
|
|
{"10 gets converted to X", 10, "X"},
|
|
{"14 gets converted to XIV", 14, "XIV"},
|
|
{"18 gets converted to XVIII", 18, "XVIII"},
|
|
{"20 gets converted to XX", 20, "XX"},
|
|
{"39 gets converted to XXXIX", 39, "XXXIX"},
|
|
}
|
|
for _, test := range cases {
|
|
t.Run(test.Description, func(t *testing.T) {
|
|
got := ConvertToRoman(test.Arabic)
|
|
want := test.Want
|
|
|
|
if got != want {
|
|
t.Errorf("got %q, want %q", got, want)
|
|
}
|
|
})
|
|
}
|
|
}
|