From f486be13ec5bfe693b72f95ed4e5a9d0b90b7f7c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 13 Mar 2018 12:58:45 +0100 Subject: ... --- roman.go | 10 +++++++--- roman_test.go | 6 ++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/roman.go b/roman.go index 5759992..526f4ca 100644 --- a/roman.go +++ b/roman.go @@ -11,9 +11,13 @@ var ( // Roman numeral in interval 0 < x < 4000 type Roman int +func (n Roman) IsValid() bool { + return n > 0 && n < 4000 +} + func (n Roman) String() string { - if n <= 0 || n >= 4000 { - return "" + if n.IsValid() { + return m3[n/1000] + m2[n%1000/100] + m1[n%100/10] + m0[n%10] } - return m3[n/1000] + m2[n%1000/100] + m1[n%100/10] + m0[n%10] + return "" } diff --git a/roman_test.go b/roman_test.go index a61436e..ff4afe9 100644 --- a/roman_test.go +++ b/roman_test.go @@ -25,3 +25,9 @@ func TestRoman(t *testing.T) { }) } } + +func BenchmarkRoman(b *testing.B) { + for i := 0; i < b.N; i++ { + Roman(1666).String() + } +} -- cgit v1.2.3