package net.time4j.format;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import java.text.ParseException;
import java.util.Arrays;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(Parameterized.class)
public class RomanNumberTestForModernUsage {
@Parameters(name= "{index}: [value={0} / numeral={1}")
public static Iterable<Object[]> data() {
return Arrays.asList(
new Object[][] {
{1, "I"},
{2, "II"},
{3, "III"},
{4, "IV"},
{5, "V"},
{6, "VI"},
{7, "VII"},
{8, "VIII"},
{9, "IX"},
{10, "X"},
{11, "XI"},
{12, "XII"},
{13, "XIII"},
{14, "XIV"},
{15, "XV"},
{16, "XVI"},
{17, "XVII"},
{18, "XVIII"},
{19, "XIX"},
{20, "XX"},
{21, "XXI"},
{22, "XXII"},
{23, "XXIII"},
{24, "XXIV"},
{25, "XXV"},
{26, "XXVI"},
{27, "XXVII"},
{28, "XXVIII"},
{29, "XXIX"},
{30, "XXX"},
{38, "XXXVIII"},
{39, "XXXIX"},
{40, "XL"},
{41, "XLI"},
{42, "XLII"},
{43, "XLIII"},
{44, "XLIV"},
{45, "XLV"},
{49, "XLIX"},
{50, "L"},
{51, "LI"},
{60, "LX"},
{87, "LXXXVII"},
{89, "LXXXIX"},
{90, "XC"},
{91, "XCI"},
{98, "XCVIII"},
{99, "XCIX"},
{100, "C"},
{499, "CDXCIX"},
{500, "D"},
{672, "DCLXXII"},
{989, "CMLXXXIX"},
{990, "CMXC"},
{1000, "M"},
{1903, "MCMIII"},
{1904, "MCMIV"},
{1910, "MCMX"},
{1954, "MCMLIV"},
{1990, "MCMXC"},
{2014, "MMXIV"},
}
);
}
private int value;
private String numeral;
public RomanNumberTestForModernUsage(
int value,
String numeral
) throws ParseException {
super();
this.value = value;
this.numeral = numeral;
}
@Test
public void toNumeral() {
assertThat(
NumberSystem.ROMAN.toNumeral(this.value),
is(this.numeral));
}
@Test
public void toInteger() {
assertThat(
NumberSystem.ROMAN.toInteger(this.numeral),
is(this.value));
}
}