package gutenberg.util; import org.junit.Test; import org.junit.runner.RunWith; import org.technbolts.junit.runners.Runner; import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; @RunWith(Runner.class) public class RomanNumeralTest { @Runner.DataProvider(name = "1-to-20") 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"}, }); } @Test @Runner.Parameterized(dataProvider = "1-to-20", namePattern = "{0} = {1}") public void first_numbers(int value, String expected) { assertThat(new RomanNumeral().format(value)).isEqualTo(expected); } @Runner.DataProvider(name = "symbols") public static Iterable<Object[]> symbols() { return Arrays.asList(new Object[][]{ {1, "i"}, {5, "v"}, {10, "x"}, {50, "l"}, {100, "c"}, {500, "d"}, {1000, "m"} }); } @Test @Runner.Parameterized(dataProvider = "symbols", namePattern = "{0} = {1}") public void symbols(int value, String expected) { assertThat(new RomanNumeral().format(value)).isEqualTo(expected); } @Runner.DataProvider(name = "big-numbers") public static Iterable<Object[]> bigNumbers() { return Arrays.asList(new Object[][]{ {2014, "mmxiv"}, }); } @Test @Runner.Parameterized(dataProvider = "big-numbers", namePattern = "{0} = {1}") public void big_numbers(int value, String expected) { assertThat(new RomanNumeral().format(value)).isEqualTo(expected); } }