aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/de/hysky/skyblocker/utils/RomanNumeralsTest.java
blob: 35bd76ee298cefc4742f5c4120211f2ffa8ef427 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package de.hysky.skyblocker.utils;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

class RomanNumeralsTest {
	@Test
	void testToRoman() {
		// Test the first 50 numbers
		String[] expected = new String[]{"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX", "XXI", "XXII", "XXIII", "XXIV", "XXV", "XXVI", "XXVII", "XXVIII", "XXIX", "XXX", "XXXI", "XXXII", "XXXIII", "XXXIV", "XXXV", "XXXVI", "XXXVII", "XXXVIII", "XXXIX", "XL", "XLI", "XLII", "XLIII", "XLIV", "XLV", "XLVI", "XLVII", "XLVIII", "XLIX", "L"};
		for (int i = 1; i <= 50; i++) {
			Assertions.assertEquals(i, RomanNumerals.romanToDecimal(expected[i-1]));
		}
		Assertions.assertEquals(100, RomanNumerals.romanToDecimal("C"));
		Assertions.assertEquals(400, RomanNumerals.romanToDecimal("CD"));
		Assertions.assertEquals(500, RomanNumerals.romanToDecimal("D"));
		Assertions.assertEquals(900, RomanNumerals.romanToDecimal("CM"));
		Assertions.assertEquals(1000, RomanNumerals.romanToDecimal("M"));
		Assertions.assertEquals(1999, RomanNumerals.romanToDecimal("MCMXCIX"));
	}

	@Test
	void isValidRoman() {
		Assertions.assertTrue(RomanNumerals.isValidRomanNumeral("I"));
		Assertions.assertFalse(RomanNumerals.isValidRomanNumeral("AI"));
		Assertions.assertTrue(RomanNumerals.isValidRomanNumeral("CMI"));
		Assertions.assertFalse(RomanNumerals.isValidRomanNumeral(" CMI"));
		Assertions.assertFalse(RomanNumerals.isValidRomanNumeral("XI I"));
		Assertions.assertFalse(RomanNumerals.isValidRomanNumeral("A"));
		Assertions.assertFalse(RomanNumerals.isValidRomanNumeral("15"));
		Assertions.assertFalse(RomanNumerals.isValidRomanNumeral("MCMLXXXAIV"));
		Assertions.assertFalse(RomanNumerals.isValidRomanNumeral(null));
		Assertions.assertFalse(RomanNumerals.isValidRomanNumeral(""));
	}
}