diff --git a/.besouro/20161007142857696/actions.txt b/.besouro/20161007142857696/actions.txt new file mode 100644 index 0000000..496e4d2 --- /dev/null +++ b/.besouro/20161007142857696/actions.txt @@ -0,0 +1,177 @@ +FileOpenedAction 1475839737951 RomanNumerals.java 1732 4 18 0 +FileOpenedAction 1475839912937 TestRomanNumerals.java 1492 17 18 2 +RefactoringAction 1475839965002 TestRomanNumerals.java ADD void test FIELD +EditAction 1475839998790 TestRomanNumerals.java 1563 17 18 2 +CompilationAction 1475840000316 TestRomanNumerals.java +CompilationAction 1475840000318 TestRomanNumerals.java +CompilationAction 1475840000319 TestRomanNumerals.java +EditAction 1475840018072 TestRomanNumerals.java 1563 17 18 2 +CompilationAction 1475840019429 TestRomanNumerals.java +CompilationAction 1475840019429 TestRomanNumerals.java +CompilationAction 1475840019429 TestRomanNumerals.java +EditAction 1475840090629 TestRomanNumerals.java 1564 17 18 2 +CompilationAction 1475840092220 TestRomanNumerals.java +CompilationAction 1475840092220 TestRomanNumerals.java +CompilationAction 1475840092220 TestRomanNumerals.java +EditAction 1475840103670 TestRomanNumerals.java 1566 18 19 2 +UnitTestCaseAction 1475840147652 TestRomanNumerals.java FAIL +UnitTestSessionAction 1475840147652 RomanNumerals.java FAIL +UnitTestCaseAction 1475840170814 TestRomanNumerals.java FAIL +UnitTestSessionAction 1475840170814 RomanNumerals.java FAIL +FileOpenedAction 1475840180580 RomanNumerals.java 1732 4 18 0 +EditAction 1475840210969 RomanNumerals.java 1795 4 19 0 +UnitTestCaseAction 1475840216619 TestRomanNumerals.java OK +UnitTestSessionAction 1475840216634 RomanNumerals.java OK +RefactoringAction 1475840331669 RomanNumerals.java ADD int Return FIELD +RefactoringAction 1475840334633 RomanNumerals.java RENAME Return=>int ReturnDoubleValue() METHOD +RefactoringAction 1475840338549 RomanNumerals.java RENAME ReturnDoubleValue()=>int ReturnDoubleValue(String) METHOD +EditAction 1475840638756 RomanNumerals.java 1856 5 19 0 +CompilationAction 1475840640347 RomanNumerals.java +EditAction 1475840732559 RomanNumerals.java 1851 5 20 0 +CompilationAction 1475840734243 RomanNumerals.java +EditAction 1475840739079 RomanNumerals.java 1862 5 21 0 +UnitTestCaseAction 1475840746539 TestRomanNumerals.java FAIL +UnitTestSessionAction 1475840746539 RomanNumerals.java FAIL +EditAction 1475840845678 RomanNumerals.java 1922 5 21 0 +UnitTestCaseAction 1475840847897 TestRomanNumerals.java FAIL +UnitTestSessionAction 1475840847897 RomanNumerals.java FAIL +EditAction 1475840937956 RomanNumerals.java 1942 5 21 0 +UnitTestCaseAction 1475840941406 TestRomanNumerals.java FAIL +UnitTestSessionAction 1475840941406 RomanNumerals.java FAIL +EditAction 1475840950548 RomanNumerals.java 1941 5 21 0 +UnitTestCaseAction 1475841046850 TestRomanNumerals.java FAIL +UnitTestSessionAction 1475841046850 RomanNumerals.java FAIL +CompilationAction 1475841123773 RomanNumerals.java +CompilationAction 1475841128594 RomanNumerals.java +UnitTestCaseAction 1475841130781 TestRomanNumerals.java FAIL +UnitTestSessionAction 1475841130781 RomanNumerals.java FAIL +UnitTestCaseAction 1475841306549 TestRomanNumerals.java OK +UnitTestSessionAction 1475841306549 RomanNumerals.java OK +UnitTestCaseAction 1475841513504 TestRomanNumerals.java OK +UnitTestSessionAction 1475841513505 RomanNumerals.java OK +RefactoringAction 1475841588197 RomanNumerals.java RENAME SumDoubleRepeat(String)=>int SumTwoValuess(String) METHOD +EditAction 1475841588727 RomanNumerals.java 1931 5 15 0 +CompilationAction 1475841590178 RomanNumerals.java +CompilationAction 1475841590178 RomanNumerals.java +CompilationAction 1475841590178 RomanNumerals.java +CompilationAction 1475841617322 RomanNumerals.java +CompilationAction 1475841617322 RomanNumerals.java +CompilationAction 1475841617322 RomanNumerals.java +CompilationAction 1475841617462 RomanNumerals.java +RefactoringAction 1475841669145 RomanNumerals.java ADD int Return FIELD +RefactoringAction 1475841672374 RomanNumerals.java RENAME Return=>int ReturnTripleValue FIELD +RefactoringAction 1475841674122 RomanNumerals.java RENAME ReturnTripleValue=>int ReturnTripleValue() METHOD +RefactoringAction 1475841676555 RomanNumerals.java RENAME ReturnTripleValue()=>int ReturnTripleValue(string) METHOD +CompilationAction 1475841681610 RomanNumerals.java +CompilationAction 1475841681610 RomanNumerals.java +CompilationAction 1475841681610 RomanNumerals.java +CompilationAction 1475841681610 RomanNumerals.java +CompilationAction 1475841681610 RomanNumerals.java +EditAction 1475841692904 RomanNumerals.java 2082 6 24 0 +CompilationAction 1475841694261 RomanNumerals.java +CompilationAction 1475841694261 RomanNumerals.java +CompilationAction 1475841694261 RomanNumerals.java +CompilationAction 1475841694261 RomanNumerals.java +CompilationAction 1475841694261 RomanNumerals.java +EditAction 1475841703138 RomanNumerals.java 2082 6 24 0 +CompilationAction 1475841704479 RomanNumerals.java +CompilationAction 1475841704479 RomanNumerals.java +CompilationAction 1475841704479 RomanNumerals.java +RefactoringAction 1475841709393 RomanNumerals.java ADD import javax.print.DocFlavor.STRING IMPORT +RefactoringAction 1475841715727 RomanNumerals.java RENAME ReturnTripleValue(STRING)=>int ReturnTripleValue(string) METHOD +RefactoringAction 1475841722622 RomanNumerals.java ADD import com.sun.org.apache.xpath.internal.operations.String IMPORT +CompilationAction 1475841753432 RomanNumerals.java +CompilationAction 1475841753432 RomanNumerals.java +CompilationAction 1475841753432 RomanNumerals.java +CompilationAction 1475841753619 RomanNumerals.java +CompilationAction 1475841753619 RomanNumerals.java +CompilationAction 1475841753619 RomanNumerals.java +CompilationAction 1475841753619 RomanNumerals.java +CompilationAction 1475841753619 RomanNumerals.java +CompilationAction 1475841753619 RomanNumerals.java +CompilationAction 1475841753619 TestRomanNumerals.java +CompilationAction 1475841766661 RomanNumerals.java +CompilationAction 1475841766661 RomanNumerals.java +CompilationAction 1475841766661 RomanNumerals.java +CompilationAction 1475841766708 RomanNumerals.java +CompilationAction 1475841766708 RomanNumerals.java +CompilationAction 1475841766708 RomanNumerals.java +CompilationAction 1475841766708 RomanNumerals.java +CompilationAction 1475841766708 RomanNumerals.java +CompilationAction 1475841876022 RomanNumerals.java +CompilationAction 1475841876023 RomanNumerals.java +CompilationAction 1475841876024 RomanNumerals.java +CompilationAction 1475841876026 RomanNumerals.java +CompilationAction 1475841876194 RomanNumerals.java +CompilationAction 1475841876195 RomanNumerals.java +CompilationAction 1475841876196 RomanNumerals.java +CompilationAction 1475841876196 RomanNumerals.java +CompilationAction 1475841927867 RomanNumerals.java +CompilationAction 1475841927867 RomanNumerals.java +CompilationAction 1475841927867 RomanNumerals.java +CompilationAction 1475841928038 RomanNumerals.java +CompilationAction 1475841928038 RomanNumerals.java +CompilationAction 1475841928038 RomanNumerals.java +CompilationAction 1475841928038 RomanNumerals.java +CompilationAction 1475841928038 RomanNumerals.java +CompilationAction 1475841928054 RomanNumerals.java +CompilationAction 1475841928054 RomanNumerals.java +CompilationAction 1475842025882 RomanNumerals.java +CompilationAction 1475842025882 RomanNumerals.java +CompilationAction 1475842025882 RomanNumerals.java +CompilationAction 1475842025897 RomanNumerals.java +CompilationAction 1475842025897 RomanNumerals.java +CompilationAction 1475842026053 RomanNumerals.java +CompilationAction 1475842026069 RomanNumerals.java +CompilationAction 1475842026069 RomanNumerals.java +CompilationAction 1475842052916 RomanNumerals.java +CompilationAction 1475842052916 RomanNumerals.java +CompilationAction 1475842052979 RomanNumerals.java +CompilationAction 1475842052979 RomanNumerals.java +CompilationAction 1475842052979 RomanNumerals.java +CompilationAction 1475842142893 RomanNumerals.java +CompilationAction 1475842142940 RomanNumerals.java +CompilationAction 1475842142956 RomanNumerals.java +EditAction 1475842189787 RomanNumerals.java 1865 6 21 0 +CompilationAction 1475842191207 RomanNumerals.java +CompilationAction 1475842191207 RomanNumerals.java +CompilationAction 1475842240363 RomanNumerals.java +CompilationAction 1475842240363 RomanNumerals.java +CompilationAction 1475842240441 RomanNumerals.java +CompilationAction 1475842246868 RomanNumerals.java +CompilationAction 1475842247024 RomanNumerals.java +CompilationAction 1475842268771 RomanNumerals.java +CompilationAction 1475842268818 RomanNumerals.java +CompilationAction 1475842279348 RomanNumerals.java +CompilationAction 1475842279472 RomanNumerals.java +CompilationAction 1475842279472 RomanNumerals.java +CompilationAction 1475842290658 RomanNumerals.java +CompilationAction 1475842290658 RomanNumerals.java +CompilationAction 1475842290704 RomanNumerals.java +CompilationAction 1475842310579 RomanNumerals.java +UnitTestCaseAction 1475842314622 TestRomanNumerals.java OK +UnitTestSessionAction 1475842314622 RomanNumerals.java OK +RefactoringAction 1475842681457 TestRomanNumerals.java ADD void test_XXReturns20()/2 METHOD +RefactoringAction 1475842687135 TestRomanNumerals.java RENAME test_XXReturns20()/2=>void test_XXXReturns20() METHOD +RefactoringAction 1475842688680 TestRomanNumerals.java RENAME test_XXXReturns20()=>void test_XXXReturns30() METHOD +EditAction 1475842692283 TestRomanNumerals.java 1641 19 20 2 +UnitTestCaseAction 1475842694392 TestRomanNumerals.java FAIL +UnitTestSessionAction 1475842694392 TestRomanNumerals.java FAIL +EditAction 1475843083755 RomanNumerals.java 2134 6 24 0 +RefactoringAction 1475843097557 RomanNumerals.java ADD int CheckRepeats() METHOD +RefactoringAction 1475843101584 RomanNumerals.java RENAME CheckRepeats()=>int CheckRepeats(String) METHOD +RefactoringAction 1475843258617 RomanNumerals.java RENAME CheckRepeats(String)=>int CheckRepeats(char) METHOD +RefactoringAction 1475843262221 RomanNumerals.java RENAME CheckRepeats(char)=>int CheckRepeats(char, String) METHOD +EditAction 1475843307024 RomanNumerals.java 2312 7 26 0 +CompilationAction 1475843308569 RomanNumerals.java +EditAction 1475843318069 RomanNumerals.java 2326 7 27 0 +CompilationAction 1475843406786 RomanNumerals.java +CompilationAction 1475843426162 RomanNumerals.java +UnitTestCaseAction 1475843431141 TestRomanNumerals.java OK +UnitTestSessionAction 1475843431141 TestRomanNumerals.java OK +EditAction 1475843496459 RomanNumerals.java 2289 7 26 0 +UnitTestCaseAction 1475843499848 TestRomanNumerals.java OK +UnitTestSessionAction 1475843499848 TestRomanNumerals.java OK +EditAction 1475844680839 RomanNumerals.java 2198 7 24 0 +UnitTestCaseAction 1475844683529 TestRomanNumerals.java OK +UnitTestSessionAction 1475844683544 TestRomanNumerals.java OK diff --git a/.besouro/20161007142857696/besouroEpisodes.txt b/.besouro/20161007142857696/besouroEpisodes.txt new file mode 100644 index 0000000..3410ae6 --- /dev/null +++ b/.besouro/20161007142857696/besouroEpisodes.txt @@ -0,0 +1,15 @@ +1475840216634 refactoring 3 478 true +1475840216635 refactoring 3 478 true +1475840216636 refactoring 3 478 true +1475840216637 refactoring 3 478 true +1475841306549 refactoring 2A 974 true +1475841306550 production 1 974 false +1475841306551 production 2 974 false +1475841513505 regression 1 0 true +1475842314622 refactoring 2A 726 true +1475842314623 production 3 726 false +1475843431141 test-first 3 749 true +1475843431142 test-first 3 749 true +1475843431143 test-first 3 749 true +1475843499848 refactoring 2A 3 true +1475844683544 refactoring 2A 2 true diff --git a/.besouro/20161007142857696/disagreements.txt b/.besouro/20161007142857696/disagreements.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/20161007142857696/randomHeuristicEpisodes.txt b/.besouro/20161007142857696/randomHeuristicEpisodes.txt new file mode 100644 index 0000000..f606df3 --- /dev/null +++ b/.besouro/20161007142857696/randomHeuristicEpisodes.txt @@ -0,0 +1,7 @@ +1475840216634 refactoring 3 478 false +1475841306549 refactoring 2A 974 false +1475841513505 regression 1 0 true +1475842314622 refactoring 2A 726 false +1475843431141 test-first 3 749 true +1475843499848 refactoring 2A 3 true +1475844683544 refactoring 2A 2 true diff --git a/.besouro/20161007142857696/userComments.txt b/.besouro/20161007142857696/userComments.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/20161007142857696/zorroEpisodes.txt b/.besouro/20161007142857696/zorroEpisodes.txt new file mode 100644 index 0000000..b0b8b68 --- /dev/null +++ b/.besouro/20161007142857696/zorroEpisodes.txt @@ -0,0 +1,7 @@ +1475840216634 refactoring 3 478 true +1475841306549 refactoring 2A 1089 true +1475841513505 regression 1 206 true +1475842314622 refactoring 2A 801 true +1475843431141 test-first 3 1116 true +1475843499848 refactoring 2A 68 true +1475844683544 refactoring 2A 1183 true diff --git a/src/RomanNumerals.java b/src/RomanNumerals.java index 20904f0..985ff03 100644 --- a/src/RomanNumerals.java +++ b/src/RomanNumerals.java @@ -1,8 +1,98 @@ - public class RomanNumerals { + + + + private static final String ROMAN10 = "X"; + private static final String ROMAN5 = "V"; + private static final String ROMAN1 = "I"; + public int convertToInteger(String romanNum) { - // To be Implemented + + // if literal repeats sum + + + if(romanNum.length() == 2) + return ReturnDoubleValue(romanNum); + + if(romanNum.length() == 3) + return ReturnTripleValue(romanNum); + + if(romanNum.equals("VIII")) + return SumTwoValues(romanNum.substring(1,3))+ReturnSingleValue(romanNum.substring(0,1))+ReturnSingleValue(romanNum.substring(3,4)); + + return ReturnSingleValue(romanNum); + } + + + private int SubstractTwoValues(String romanNum) { + return ReturnSingleValue(romanNum.substring(1,2))-ReturnSingleValue(romanNum.substring(0,1)); + } + + + private int SumTwoValues(String romanNum) { + return ReturnSingleValue(romanNum.substring(0,1))+ReturnSingleValue(romanNum.substring(1,2)); + } + + private int ReturnTripleValue(String romanNum) { + + if(CheckRepeats(romanNum.charAt(0), romanNum) == 2) + return SumTwoValues(romanNum.substring(1,3))+ReturnSingleValue(romanNum.substring(0,1)); + + if(romanNum.equals("VII")) + return SumTwoValues(romanNum.substring(1,3))+ReturnSingleValue(romanNum.substring(0,1)); + + + return 0; + } + + private int CheckRepeats(char c, String string) { + int num = 0; + for(int i = 1; i != string.length(); i++) + if(string.charAt(i) == c) + num++; + else + return -1; + return num; + } + + private int ReturnDoubleValue(String romanNum) { + + if(CheckRepeats(romanNum.charAt(0), romanNum) == 1) + return SumTwoValues(romanNum); + + if(romanNum.equals("IV") || romanNum.equals("IX") || romanNum.equals("XL") ) + return SubstractTwoValues(romanNum); + + if(romanNum.equals("VI")) + return SumTwoValues(romanNum); + return 0; + } + + + private int ReturnSingleValue(String romanNum) { + if(romanNum.equals(ROMAN1)) + return 1; + + if(romanNum.equals(ROMAN5)) + return 5; + if(romanNum.equals(ROMAN10)) + return 10; + + if(romanNum.equals("L")) + return 50; + + if(romanNum.equals("C")) + return 100; + + if(romanNum.equals("D")) + return 500; + + if(romanNum.equals("M")) + return 1000; + + + return 0; } } diff --git a/tests/TestRomanNumerals.java b/tests/TestRomanNumerals.java index 5d1de75..500ef73 100644 --- a/tests/TestRomanNumerals.java +++ b/tests/TestRomanNumerals.java @@ -5,8 +5,108 @@ public class TestRomanNumerals { @Test - public void test() { - fail("Not yet implemented"); + public void test_CreateRomanNumerals() { + assertNotNull(converter); } + + private RomanNumerals converter = new RomanNumerals(); + + @Test + public void test_IReturns1() { + AssertNumeral(1, "I"); + } + + @Test + public void test_IIReturns2() { + AssertNumeral(2, "II"); + } + + @Test + public void test_IIIReturns3() { + AssertNumeral(3, "III"); + } + + @Test + public void test_IVReturns4() { + AssertNumeral(4, "IV"); + } + + + @Test + public void test_VReturns5() { + AssertNumeral(5, "V"); + } + + @Test + public void test_VIReturns6() { + AssertNumeral(6, "VI"); + } + + @Test + public void test_VIIReturns7() { + AssertNumeral(7, "VII"); + } + + @Test + public void test_VIIIReturns8() { + AssertNumeral(8, "VIII"); + } + + @Test + public void test_IXReturns9() { + AssertNumeral(9, "IX"); + } + + + @Test + public void test_XReturns10() { + AssertNumeral(10, "X"); + } + + @Test + public void test_XXReturns20() { + AssertNumeral(20, "XX"); + } + + @Test + public void test_XXXReturns30() { + AssertNumeral(30, "XXX"); + } + + @Test + public void test_XLReturns40() { + AssertNumeral(40, "XL"); + } + + + @Test + public void test_LReturns50() { + AssertNumeral(50, "L"); + } + + @Test + public void test_CReturns100() { + AssertNumeral(100, "C"); + } + + @Test + public void test_DReturns500() { + AssertNumeral(500, "D"); + } + + @Test + public void test_MReturns1000() { + AssertNumeral(1000, "M"); + } + + + + + private void AssertNumeral(int arabic, String roman) { + int result = converter.convertToInteger(roman); + assertEquals(arabic, result); + } + + }