From d97bc8b1c57100cd79b432d44bf1c7341946d89e Mon Sep 17 00:00:00 2001 From: tapantti Date: Thu, 11 Oct 2018 15:17:25 +0300 Subject: [PATCH 1/6] Commit 1 11.10. 15:17 --- src/RomanNumerals.java | 12 ++++++++++++ tests/TestRomanNumerals.java | 28 ++++++++++++++++++++++++---- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/RomanNumerals.java b/src/RomanNumerals.java index 20904f0..5ab6c81 100644 --- a/src/RomanNumerals.java +++ b/src/RomanNumerals.java @@ -1,3 +1,5 @@ +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class RomanNumerals { public int convertToInteger(String romanNum) { @@ -5,4 +7,14 @@ public int convertToInteger(String romanNum) { return 0; } + public void checkInput(String romanNum) throws IllegalArgumentException{ + Pattern p1 = Pattern.compile("([a-z\\d])\\1\\1\\1", Pattern.CASE_INSENSITIVE); + Matcher m1 = p1.matcher(romanNum); + if (m1.find()) throw new IllegalArgumentException(); + //V, L, or D 2 times + Pattern p2 = Pattern.compile("([a-z\\d])\\1", Pattern.CASE_INSENSITIVE); + Matcher m2 = p2.matcher(romanNum); + if (m2.find()) throw new IllegalArgumentException(); + + } } diff --git a/tests/TestRomanNumerals.java b/tests/TestRomanNumerals.java index 5d1de75..311f8bc 100644 --- a/tests/TestRomanNumerals.java +++ b/tests/TestRomanNumerals.java @@ -3,10 +3,30 @@ import org.junit.Test; public class TestRomanNumerals { - - @Test - public void test() { - fail("Not yet implemented"); + @Test(expected = IllegalArgumentException.class) + public void testCheckInputIXCM() throws IllegalArgumentException{ + RomanNumerals rm = new RomanNumerals(); + String roman1 = "IIII"; + String roman2 = "IIIXXXMMMM"; + String roman3 = "MCMXXXX"; + + rm.checkInput(roman1); + rm.checkInput(roman2); + rm.checkInput(roman3); + + } + + @Test(expected = IllegalArgumentException.class) + public void testCheckInputVLD() throws IllegalArgumentException{ + RomanNumerals rm = new RomanNumerals(); + String roman1 = "VV"; + String roman2 = "MLL"; + String roman3 = "DDD"; + + rm.checkInput(roman1); + rm.checkInput(roman2); + rm.checkInput(roman3); + } } From 4bd282ecd0aef11a05e5486a33f17856d50c4910 Mon Sep 17 00:00:00 2001 From: Tapio Anttila Date: Tue, 16 Oct 2018 23:19:32 +0300 Subject: [PATCH 2/6] Assignment Finished --- RomanNumerals.java | 94 ++++++++++++++++++++++++++++++++++++++++++ TestRomanNumerals.java | 94 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 188 insertions(+) create mode 100644 RomanNumerals.java create mode 100644 TestRomanNumerals.java diff --git a/RomanNumerals.java b/RomanNumerals.java new file mode 100644 index 0000000..a31acbe --- /dev/null +++ b/RomanNumerals.java @@ -0,0 +1,94 @@ +import java.util.ArrayList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class RomanNumerals { + public int convertToInteger(String romanNum) { + this.checkInput(romanNum); + ArrayList list = new ArrayList(); + String c1; String c2=""; + int n1; int n2=0; + + for (int i=0; i Date: Tue, 16 Oct 2018 23:19:58 +0300 Subject: [PATCH 3/6] Delete RomanNumerals.java --- RomanNumerals.java | 94 ---------------------------------------------- 1 file changed, 94 deletions(-) delete mode 100644 RomanNumerals.java diff --git a/RomanNumerals.java b/RomanNumerals.java deleted file mode 100644 index a31acbe..0000000 --- a/RomanNumerals.java +++ /dev/null @@ -1,94 +0,0 @@ -import java.util.ArrayList; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class RomanNumerals { - public int convertToInteger(String romanNum) { - this.checkInput(romanNum); - ArrayList list = new ArrayList(); - String c1; String c2=""; - int n1; int n2=0; - - for (int i=0; i Date: Tue, 16 Oct 2018 23:20:08 +0300 Subject: [PATCH 4/6] Delete TestRomanNumerals.java --- TestRomanNumerals.java | 94 ------------------------------------------ 1 file changed, 94 deletions(-) delete mode 100644 TestRomanNumerals.java diff --git a/TestRomanNumerals.java b/TestRomanNumerals.java deleted file mode 100644 index 7967dff..0000000 --- a/TestRomanNumerals.java +++ /dev/null @@ -1,94 +0,0 @@ -import static org.junit.Assert.*; - -import org.junit.Test; - -public class TestRomanNumerals { - @Test(expected = IllegalArgumentException.class) - public void testCheckInputIXCM() throws IllegalArgumentException{ - RomanNumerals rm = new RomanNumerals(); - String roman1 = "IIII"; - String roman2 = "IIIXXXMMMM"; - String roman3 = "mcmxxxx"; - - //rm.checkInput(roman1); - //rm.checkInput(roman2); - rm.checkInput(roman3); - /*Uncomment the one you wish to test in isolation*/ - - } - - @Test(expected = IllegalArgumentException.class) - public void testCheckInputVLD() throws IllegalArgumentException{ - RomanNumerals rm = new RomanNumerals(); - String roman1 = "VV"; - String roman2 = "MLL"; - String roman3 = "ddd"; - - //rm.checkInput(roman1); - rm.checkInput(roman2); - //rm.checkInput(roman3); - /*Uncomment the one you wish to test in isolation*/ - - } - - @Test - public void testConvertSingles() { - RomanNumerals rm = new RomanNumerals(); - String roman1 = "MMXIv"; - String romanC1 = Character.toString(roman1.charAt(0)); //M - String romanC2 = Character.toString(roman1.charAt(2)); //X - String romanC3 = Character.toString(roman1.charAt(4)); //V - - assertEquals(1000, rm.convertSingles(romanC1)); - assertEquals(10, rm.convertSingles(romanC2)); - assertEquals(5, rm.convertSingles(romanC3)); - } - - @Test(expected = IllegalArgumentException.class) - public void testSubtractionThrows() throws IllegalArgumentException{ - RomanNumerals rm = new RomanNumerals(); - String x1 = "I"; String x2 = "L"; - String y1 = "x"; String y2 = "d"; - String z1 = "I"; String z2 = "D"; - String a1 = "v"; String a2 = "m"; - - rm.subtraction(x1, x2); - //rm.subtraction(y1, y2); - //rm.subtraction(z1, z2); - //rm.subtraction(a1, a2); - /*Uncomment the one you wish to test in isolation*/ - - } - - @Test - public void testSubtraction() { - RomanNumerals rm = new RomanNumerals(); - - String x1 = "I"; String x2 = "V"; - int result1 = rm.subtraction(x1, x2); - assertEquals(4, result1); - - String y1 = "x"; String y2 = "c"; - assertEquals(90, rm.subtraction(y1, y2)); - - String z1 = "C"; String z2 = "m"; - assertEquals(900, rm.subtraction(z1, z2)); - } - - @Test - public void testConvertToInteger() { - RomanNumerals rm = new RomanNumerals(); - String romanNum1 = "mmxiv"; - String romanNum2 = "MCMLXXXIV"; - String romanNum3 = "MCMXCII"; - String romanNum4 = "MMMDCCCLXXXVIII"; - String romanNum5 = "cdxliv"; - - assertEquals(2014, rm.convertToInteger(romanNum1)); - assertEquals(1984, rm.convertToInteger(romanNum2)); - assertEquals(1992, rm.convertToInteger(romanNum3)); - assertEquals(3888, rm.convertToInteger(romanNum4)); - assertEquals(444, rm.convertToInteger(romanNum5)); - } - -} From 2ffed04648a0d8a80587d50f13a370633f5d154f Mon Sep 17 00:00:00 2001 From: Tapio Anttila Date: Tue, 16 Oct 2018 23:20:42 +0300 Subject: [PATCH 5/6] Assignment Finished --- src/RomanNumerals.java | 82 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 78 insertions(+), 4 deletions(-) diff --git a/src/RomanNumerals.java b/src/RomanNumerals.java index 5ab6c81..a31acbe 100644 --- a/src/RomanNumerals.java +++ b/src/RomanNumerals.java @@ -1,20 +1,94 @@ +import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RomanNumerals { public int convertToInteger(String romanNum) { - // To be Implemented - return 0; + this.checkInput(romanNum); + ArrayList list = new ArrayList(); + String c1; String c2=""; + int n1; int n2=0; + + for (int i=0; i Date: Tue, 16 Oct 2018 23:21:13 +0300 Subject: [PATCH 6/6] Assignment Finished --- tests/TestRomanNumerals.java | 74 +++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 6 deletions(-) diff --git a/tests/TestRomanNumerals.java b/tests/TestRomanNumerals.java index 311f8bc..7967dff 100644 --- a/tests/TestRomanNumerals.java +++ b/tests/TestRomanNumerals.java @@ -8,11 +8,12 @@ public void testCheckInputIXCM() throws IllegalArgumentException{ RomanNumerals rm = new RomanNumerals(); String roman1 = "IIII"; String roman2 = "IIIXXXMMMM"; - String roman3 = "MCMXXXX"; + String roman3 = "mcmxxxx"; - rm.checkInput(roman1); - rm.checkInput(roman2); + //rm.checkInput(roman1); + //rm.checkInput(roman2); rm.checkInput(roman3); + /*Uncomment the one you wish to test in isolation*/ } @@ -21,12 +22,73 @@ public void testCheckInputVLD() throws IllegalArgumentException{ RomanNumerals rm = new RomanNumerals(); String roman1 = "VV"; String roman2 = "MLL"; - String roman3 = "DDD"; + String roman3 = "ddd"; - rm.checkInput(roman1); + //rm.checkInput(roman1); rm.checkInput(roman2); - rm.checkInput(roman3); + //rm.checkInput(roman3); + /*Uncomment the one you wish to test in isolation*/ + + } + + @Test + public void testConvertSingles() { + RomanNumerals rm = new RomanNumerals(); + String roman1 = "MMXIv"; + String romanC1 = Character.toString(roman1.charAt(0)); //M + String romanC2 = Character.toString(roman1.charAt(2)); //X + String romanC3 = Character.toString(roman1.charAt(4)); //V + + assertEquals(1000, rm.convertSingles(romanC1)); + assertEquals(10, rm.convertSingles(romanC2)); + assertEquals(5, rm.convertSingles(romanC3)); + } + + @Test(expected = IllegalArgumentException.class) + public void testSubtractionThrows() throws IllegalArgumentException{ + RomanNumerals rm = new RomanNumerals(); + String x1 = "I"; String x2 = "L"; + String y1 = "x"; String y2 = "d"; + String z1 = "I"; String z2 = "D"; + String a1 = "v"; String a2 = "m"; + + rm.subtraction(x1, x2); + //rm.subtraction(y1, y2); + //rm.subtraction(z1, z2); + //rm.subtraction(a1, a2); + /*Uncomment the one you wish to test in isolation*/ + + } + + @Test + public void testSubtraction() { + RomanNumerals rm = new RomanNumerals(); + + String x1 = "I"; String x2 = "V"; + int result1 = rm.subtraction(x1, x2); + assertEquals(4, result1); + + String y1 = "x"; String y2 = "c"; + assertEquals(90, rm.subtraction(y1, y2)); + + String z1 = "C"; String z2 = "m"; + assertEquals(900, rm.subtraction(z1, z2)); + } + + @Test + public void testConvertToInteger() { + RomanNumerals rm = new RomanNumerals(); + String romanNum1 = "mmxiv"; + String romanNum2 = "MCMLXXXIV"; + String romanNum3 = "MCMXCII"; + String romanNum4 = "MMMDCCCLXXXVIII"; + String romanNum5 = "cdxliv"; + assertEquals(2014, rm.convertToInteger(romanNum1)); + assertEquals(1984, rm.convertToInteger(romanNum2)); + assertEquals(1992, rm.convertToInteger(romanNum3)); + assertEquals(3888, rm.convertToInteger(romanNum4)); + assertEquals(444, rm.convertToInteger(romanNum5)); } }