From 4af9b6a40d3758b60476c62641e9b216c3b79fe3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 13 Mar 2018 00:28:50 +0100 Subject: extend test cases --- roman_test.go | 58 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/roman_test.go b/roman_test.go index 081460f..218c38e 100644 --- a/roman_test.go +++ b/roman_test.go @@ -1,32 +1,36 @@ package roman -import "fmt" +import ( + "testing" +) -func ExampleRoman() { - for i := 0; i <= 21; i++ { - fmt.Println(Roman(1 << uint(i))) +func TestRoman(t *testing.T) { + testCases := []struct { + r Roman + s string + }{ + {0, ""}, + {1, "I"}, + {3, "III"}, + {5, "V"}, + {8, "VIII"}, + {13, "XIII"}, + {21, "XXI"}, + {34, "XXXIV"}, + {55, "LV"}, + {89, "LXXXIX"}, + {1e3 - 1, "CMXCIX"}, + {2e3 - 1, "MCMXCIX"}, + {4e3 - 1, "MMMCMXCIX"}, + {1e6 - 1, "C̅M̅X̅C̅I̅X̅CMXCIX"}, + {2e6 - 1, "M̅C̅M̅X̅C̅I̅X̅CMXCIX"}, + {4e6 - 1, "M̅M̅M̅C̅M̅X̅C̅I̅X̅CMXCIX"}, + } + for _, tc := range testCases { + t.Run(tc.s, func(t *testing.T) { + if tc.r.String() != tc.s { + t.Errorf("got %v, want %v", tc.r, tc.s) + } + }) } - // Output: - // I - // II - // IV - // VIII - // XVI - // XXXII - // LXIV - // CXXVIII - // CCLVI - // DXII - // MXXIV - // MMXLVIII - // I̅V̅XCVI - // V̅I̅I̅I̅CXCII - // X̅V̅I̅CCCLXXXIV - // X̅X̅X̅MMDCCLXVIII - // L̅X̅V̅DXXXVI - // C̅X̅X̅X̅MLXXII - // C̅C̅L̅X̅MMCXLIV - // D̅X̅X̅I̅V̅CCLXXXVIII - // M̅X̅L̅V̅I̅I̅I̅DLXXVI - // M̅M̅X̅C̅V̅I̅I̅CLII } -- cgit v1.2.3