Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pn;
- import static org.junit.Assert.assertEquals;
- import static org.junit.Assert.assertTrue;
- import org.junit.Before;
- import org.junit.Test;
- public class AppTest {
- private RomanToNumbersConverter romanToNumbersConverter;
- @Before
- public void setUp() throws Exception {
- romanToNumbersConverter = new RomanToNumbersConverter();
- }
- @Test
- public void convertOne() {
- int result = romanToNumbersConverter.convert("I");
- assertEquals(1, result);
- }
- @Test
- public void testFive() {
- int result = romanToNumbersConverter.convert("V");
- assertEquals(5, result);
- }
- @Test
- public void testFour() {
- int result = romanToNumbersConverter.convert("IV");
- assertEquals(4, result);
- }
- @Test
- public void testSix() {
- int result = romanToNumbersConverter.convert("VI");
- assertEquals(6, result);
- }
- @Test
- public void testEight() {
- int result = romanToNumbersConverter.convert("VIII");
- assertEquals(8, result);
- }
- @Test
- public void testEleven() {
- int result = romanToNumbersConverter.convert("XI");
- assertEquals(11, result);
- }
- @Test
- public void testSixtyEight() {
- int result = romanToNumbersConverter.convert("LXVIII");
- assertEquals(68, result);
- }
- @Test
- public void testOneHundreadAndEleven() {
- int result = romanToNumbersConverter.convert("XI");
- assertEquals(11, result);
- }
- }
- package pn;
- import java.util.HashMap;
- public class RomanToNumbersConverter {
- private HashMap<String, Integer> romanNumbers;
- public RomanToNumbersConverter() {
- this.romanNumbers = new HashMap<>();
- romanNumbers.put("I", 1);
- romanNumbers.put("V", 5);
- romanNumbers.put("X", 10);
- romanNumbers.put("L", 50);
- romanNumbers.put("C", 100);
- }
- public int convert(String romanNumber) {
- if (romanNumber.length() == 1) {
- return romanNumbers.get(romanNumber);
- }
- int result = 0;
- char[] romanNumberArray = romanNumber.toCharArray();
- for (int character = romanNumber.length() - 1; character > 0; character--) {
- String characterAsString = Character.toString(romanNumberArray[character]);
- String previousCharacterAsString = Character.toString(romanNumberArray[character-1]);
- int currentNumber = romanNumbers.get(characterAsString);
- if (romanNumbers.get(previousCharacterAsString) < currentNumber) {
- currentNumber = currentNumber - romanNumbers.get(previousCharacterAsString);
- } else if (romanNumbers.get(previousCharacterAsString) > currentNumber) {
- currentNumber = currentNumber + romanNumbers.get(previousCharacterAsString);
- }
- result += currentNumber;
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement