diff --git a/.besouro/2016091415302846/actions.txt b/.besouro/2016091415302846/actions.txt new file mode 100644 index 0000000..a8abb8f --- /dev/null +++ b/.besouro/2016091415302846/actions.txt @@ -0,0 +1,172 @@ +FileOpenedAction 1473856228158 StringCalculator.java 180 1 1 0 +EditAction 1473856304000 StringCalculator.java 266 1 2 0 +FileOpenedAction 1473856312568 StringCalculatorTest.java 174 1 1 0 +RefactoringAction 1473856323076 StringCalculatorTest.java RENAME test()=>void testStringCalculator_EmptyString() METHOD +EditAction 1473856408691 StringCalculator.java 273 1 2 0 +EditAction 1473856424049 StringCalculatorTest.java 315 1 3 0 +EditAction 1473856444901 StringCalculatorTest.java 324 1 3 1 +UnitTestCaseAction 1473856449389 StringCalculatorTest.java OK +UnitTestSessionAction 1473856449390 StringCalculatorTest.java OK +EditAction 1473856678056 StringCalculator.java 419 1 3 0 +RefactoringAction 1473856688784 StringCalculatorTest.java ADD void testStringCalculator_EmptyString()/2 METHOD +RefactoringAction 1473856694798 StringCalculatorTest.java RENAME testStringCalculator_EmptyString()/2=>void testStringCalculator_OneNumber() METHOD +EditAction 1473856708537 StringCalculatorTest.java 544 2 6 2 +UnitTestCaseAction 1473856711263 StringCalculatorTest.java OK +UnitTestSessionAction 1473856711264 StringCalculatorTest.java OK +RefactoringAction 1473856717335 StringCalculatorTest.java ADD void testStringCalculator_OneNumber()/2 METHOD +RefactoringAction 1473856719347 StringCalculatorTest.java RENAME testStringCalculator_OneNumber()/2=>void testStringCalculator_OneNumber_2() METHOD +EditAction 1473856726491 StringCalculatorTest.java 769 3 9 3 +UnitTestCaseAction 1473856730455 StringCalculatorTest.java OK +UnitTestSessionAction 1473856730456 StringCalculatorTest.java OK +EditAction 1473856835700 StringCalculator.java 643 1 4 0 +RefactoringAction 1473856842946 StringCalculatorTest.java ADD void testStringCalculator_OneNumber_2()/2 METHOD +RefactoringAction 1473856845453 StringCalculatorTest.java RENAME testStringCalculator_OneNumber_2()/2=>void testStringCalculator_TwoNumber_2() METHOD +RefactoringAction 1473856846962 StringCalculatorTest.java RENAME testStringCalculator_TwoNumber_2()=>void testStringCalculator_TwoNumbers() METHOD +EditAction 1473856862342 StringCalculatorTest.java 997 4 12 4 +UnitTestCaseAction 1473856865112 StringCalculatorTest.java OK +UnitTestSessionAction 1473856865113 StringCalculatorTest.java OK +RefactoringAction 1473856870004 StringCalculatorTest.java ADD void testStringCalculator_TwoNumbers()/2 METHOD +RefactoringAction 1473856873517 StringCalculatorTest.java RENAME testStringCalculator_TwoNumbers()/2=>void testStringCalculator_TwoNumbers_2() METHOD +EditAction 1473856884887 StringCalculatorTest.java 1229 5 15 5 +UnitTestCaseAction 1473856888505 StringCalculatorTest.java OK +UnitTestSessionAction 1473856888506 StringCalculatorTest.java OK +EditAction 1473857192074 StringCalculator.java 916 1 5 0 +RefactoringAction 1473857207050 StringCalculatorTest.java ADD void testStringCalculator_TwoNumbers()/2 METHOD +RefactoringAction 1473857210654 StringCalculatorTest.java RENAME testStringCalculator_TwoNumbers()/2=>void testStringCalculator_ThreeNumbers() METHOD +RefactoringAction 1473857212713 StringCalculatorTest.java RENAME testStringCalculator_ThreeNumbers()=>void testStringCalculator_ManyNumbers() METHOD +EditAction 1473857233274 StringCalculatorTest.java 1466 6 18 6 +UnitTestCaseAction 1473857236459 StringCalculatorTest.java OK +UnitTestSessionAction 1473857236459 StringCalculatorTest.java OK +RefactoringAction 1473857241014 StringCalculatorTest.java ADD void testStringCalculator_ManyNumbers()/2 METHOD +RefactoringAction 1473857244119 StringCalculatorTest.java RENAME testStringCalculator_ManyNumbers()/2=>void testStringCalculator_ManyNumbers_2() METHOD +EditAction 1473857277628 StringCalculatorTest.java 1723 7 21 7 +UnitTestCaseAction 1473857281671 StringCalculatorTest.java OK +UnitTestSessionAction 1473857281671 StringCalculatorTest.java OK +RefactoringAction 1473857286835 StringCalculatorTest.java ADD void testStringCalculator_ManyNumbers_2()/2 METHOD +RefactoringAction 1473857293012 StringCalculatorTest.java RENAME testStringCalculator_ManyNumbers_2()/2=>void testStringCalculator_TwoNumbers_ManyCommas() METHOD +EditAction 1473857317691 StringCalculatorTest.java 1982 8 24 8 +UnitTestCaseAction 1473857321423 StringCalculatorTest.java OK +UnitTestSessionAction 1473857321423 StringCalculatorTest.java OK +RefactoringAction 1473857335213 StringCalculatorTest.java ADD void testStringCalculator_TwoNumbers_ManyCommas()/2 METHOD +RefactoringAction 1473857338302 StringCalculatorTest.java RENAME testStringCalculator_TwoNumbers_ManyCommas()/2=>void testStringCalculator_ManyNumbers_ManyCommas() METHOD +EditAction 1473857362201 StringCalculatorTest.java 2247 9 27 9 +UnitTestCaseAction 1473857365714 StringCalculatorTest.java OK +UnitTestSessionAction 1473857365714 StringCalculatorTest.java OK +EditAction 1473857437303 StringCalculator.java 692 1 4 0 +UnitTestCaseAction 1473857440504 StringCalculatorTest.java OK +UnitTestSessionAction 1473857440504 StringCalculatorTest.java OK +RefactoringAction 1473857452455 StringCalculator.java REMOVE add(String) METHOD +RefactoringAction 1473857452704 StringCalculator.java ADD static int add(String) METHOD +EditAction 1473857462626 StringCalculator.java 746 1 4 0 +EditAction 1473857486478 StringCalculator.java 758 1 4 0 +EditAction 1473857497445 StringCalculator.java 710 1 4 0 +FileOpenedAction 1473857661620 StringCalculatorException.java 67 0 0 0 +EditAction 1473857697656 StringCalculator.java 894 1 5 0 +CompilationAction 1473857699356 StringCalculator.java +RefactoringAction 1473857726984 StringCalculatorException.java ADD StringCalculatorException(String) METHOD +EditAction 1473857731399 StringCalculatorException.java 139 1 1 0 +CompilationAction 1473857733520 StringCalculator.java +CompilationAction 1473857814918 StringCalculator.java +CompilationAction 1473857814989 StringCalculatorTest.java +EditAction 1473857820100 StringCalculatorException.java 72 0 0 0 +CompilationAction 1473857822095 StringCalculator.java +CompilationAction 1473857822096 StringCalculatorTest.java +RefactoringAction 1473857823724 StringCalculatorException.java ADD StringCalculatorException(String) METHOD +EditAction 1473857824445 StringCalculatorException.java 139 1 1 0 +CompilationAction 1473857826531 StringCalculatorTest.java +CompilationAction 1473857880018 StringCalculatorTest.java +EditAction 1473857913857 StringCalculator.java 925 1 5 0 +EditAction 1473857931407 StringCalculator.java 878 1 4 0 +CompilationAction 1473857933357 StringCalculator.java +EditAction 1473857944824 StringCalculator.java 895 1 5 0 +EditAction 1473857957398 StringCalculatorTest.java 2542 9 27 9 +UnitTestCaseAction 1473857960567 StringCalculatorTest.java OK +UnitTestSessionAction 1473857960567 StringCalculatorTest.java OK +RefactoringAction 1473857987712 StringCalculatorTest.java ADD void testStringCalculator_ManyNumbers_ManyCommas()/2 METHOD +RefactoringAction 1473857996994 StringCalculatorTest.java RENAME testStringCalculator_ManyNumbers_ManyCommas()/2=>void testStringCalculator_ManyNumbers_NewlineAndCommas() METHOD +RefactoringAction 1473857998554 StringCalculatorTest.java RENAME testStringCalculator_ManyNumbers_NewlineAndCommas()=>void testStringCalculator_ManyNumbers_NewlineAndComma() METHOD +EditAction 1473858047179 StringCalculatorTest.java 2851 10 30 10 +UnitTestCaseAction 1473858051066 StringCalculatorTest.java OK +UnitTestSessionAction 1473858051066 StringCalculatorTest.java OK +RefactoringAction 1473858059802 StringCalculatorTest.java ADD void testStringCalculator_ManyNumbers_NewlineAndComma()/2 METHOD +RefactoringAction 1473858064966 StringCalculatorTest.java RENAME testStringCalculator_ManyNumbers_NewlineAndComma()/2=>void testStringCalculator_ManyNumbers_NewlinesOnly() METHOD +EditAction 1473858101049 StringCalculatorTest.java 3169 11 33 11 +UnitTestCaseAction 1473858104219 StringCalculatorTest.java OK +UnitTestSessionAction 1473858104219 StringCalculatorTest.java OK +RefactoringAction 1473858111816 StringCalculatorTest.java ADD void testStringCalculator_ManyNumbers_NewlinesOnly()/2 METHOD +RefactoringAction 1473858115950 StringCalculatorTest.java RENAME testStringCalculator_ManyNumbers_NewlinesOnly()/2=>void testStringCalculator_NewlinesOnly() METHOD +RefactoringAction 1473858119553 StringCalculatorTest.java RENAME testStringCalculator_NewlinesOnly()=>void testStringCalculator_NewlineAndCom() METHOD +RefactoringAction 1473858123672 StringCalculatorTest.java RENAME testStringCalculator_NewlineAndCom()=>void testStringCalculator_NewlineAndCommaNextToEachOther() METHOD +EditAction 1473858141503 StringCalculatorTest.java 3414 12 35 11 +UnitTestCaseAction 1473858145577 StringCalculatorTest.java FAIL +UnitTestSessionAction 1473858145577 StringCalculatorTest.java FAIL +CompilationAction 1473858161162 StringCalculatorTest.java +CompilationAction 1473858167292 StringCalculatorTest.java +UnitTestCaseAction 1473858170961 StringCalculatorTest.java FAIL +UnitTestSessionAction 1473858170961 StringCalculatorTest.java FAIL +FileOpenedAction 1473858182365 StringCalculatorException.java 139 1 1 0 +EditAction 1473858198090 StringCalculatorException.java 126 1 0 0 +EditAction 1473858204548 StringCalculatorException.java 124 1 0 0 +UnitTestCaseAction 1473858208654 StringCalculatorTest.java FAIL +UnitTestSessionAction 1473858208654 StringCalculatorTest.java FAIL +EditAction 1473858223552 StringCalculator.java 843 1 5 0 +CompilationAction 1473858225424 StringCalculator.java +RefactoringAction 1473858231259 StringCalculatorException.java RENAME StringCalculatorException(String)=>StringCalculatorException() METHOD +EditAction 1473858231945 StringCalculatorException.java 110 1 0 0 +EditAction 1473858237779 StringCalculatorException.java 70 0 0 0 +EditAction 1473858242303 StringCalculatorException.java 68 0 0 0 +UnitTestCaseAction 1473858248000 StringCalculatorTest.java FAIL +UnitTestSessionAction 1473858248000 StringCalculatorTest.java FAIL +UnitTestCaseAction 1473858457217 StringCalculatorTest.java FAIL +UnitTestSessionAction 1473858457233 StringCalculatorTest.java FAIL +UnitTestCaseAction 1473858460372 StringCalculatorTest.java FAIL +UnitTestSessionAction 1473858460372 StringCalculatorTest.java FAIL +EditAction 1473858480372 StringCalculator.java 869 1 5 0 +CompilationAction 1473858482353 StringCalculator.java +CompilationAction 1473858492306 StringCalculator.java +UnitTestCaseAction 1473858495153 StringCalculatorTest.java FAIL +UnitTestSessionAction 1473858495153 StringCalculatorTest.java FAIL +RefactoringAction 1473858588149 StringCalculator.java ADD import java.util.regex.Pattern IMPORT +EditAction 1473858607334 StringCalculator.java 974 1 6 0 +CompilationAction 1473858609640 StringCalculator.java +EditAction 1473858616398 StringCalculator.java 951 1 6 0 +CompilationAction 1473858618410 StringCalculator.java +RefactoringAction 1473858626393 StringCalculator.java ADD import java.util.regex.Matcher IMPORT +CompilationAction 1473858666539 StringCalculator.java +UnitTestCaseAction 1473858675968 StringCalculatorTest.java OK +UnitTestSessionAction 1473858675968 StringCalculatorTest.java OK +EditAction 1473858690663 StringCalculator.java 1074 1 6 0 +RefactoringAction 1473858703377 StringCalculatorTest.java ADD void testStringCalculator_NewlineAndCommaNextToEachOther()/2 METHOD +RefactoringAction 1473858706481 StringCalculatorTest.java RENAME testStringCalculator_NewlineAndCommaNextToEachOther()/2=>void testStringCalculator_CommaNextToEachOther() METHOD +RefactoringAction 1473858709071 StringCalculatorTest.java RENAME testStringCalculator_CommaNextToEachOther()=>void testStringCalculator_CommaAndNewlineNextToEachOther() METHOD +UnitTestCaseAction 1473858717810 StringCalculatorTest.java OK +UnitTestSessionAction 1473858717810 StringCalculatorTest.java OK +RefactoringAction 1473858731195 StringCalculatorTest.java ADD void testStringCalculator_CommaAndNewlineNextToEachOther()/2 METHOD +RefactoringAction 1473858736873 StringCalculatorTest.java RENAME testStringCalculator_CommaAndNewlineNextToEachOther()/2=>void testStringCalculator_NegativeNumber() METHOD +RefactoringAction 1473858747185 StringCalculatorTest.java RENAME testStringCalculator_NegativeNumber()=>void testStringCalculator_NNegativeNumber() METHOD +RefactoringAction 1473858748745 StringCalculatorTest.java RENAME testStringCalculator_NNegativeNumber()=>void testStringCalculator_WithNegativeNumber() METHOD +RefactoringAction 1473858757512 StringCalculatorTest.java ADD void testStringCalculator_WithNegativeNumber()/2 METHOD +RefactoringAction 1473858762161 StringCalculatorTest.java RENAME testStringCalculator_WithNegativeNumber()/2=>void testStringCalculator_OneNegativeNumber() METHOD +RefactoringAction 1473858765265 StringCalculatorTest.java REMOVE testStringCalculator_OneNegativeNumber() METHOD +RefactoringAction 1473858766310 StringCalculatorTest.java ADD void testStringCalculator_OneNegativeNumber() METHOD +UnitTestCaseAction 1473858772288 StringCalculatorTest.java OK +UnitTestSessionAction 1473858772288 StringCalculatorTest.java OK +RefactoringAction 1473858778653 StringCalculatorTest.java ADD void testStringCalculator_OneNegativeNumber()/2 METHOD +RefactoringAction 1473858783302 StringCalculatorTest.java RENAME testStringCalculator_OneNegativeNumber()/2=>void testStringCalculator_IllegalC() METHOD +RefactoringAction 1473858785891 StringCalculatorTest.java RENAME testStringCalculator_IllegalC()=>void testStringCalculator_IllegalCharacters() METHOD +RefactoringAction 1473858798262 StringCalculatorTest.java ADD void testStringCalculator_IllegalCharacters()/2 METHOD +RefactoringAction 1473858800337 StringCalculatorTest.java RENAME testStringCalculator_IllegalCharacters()/2=>void testStringCalculator_IllegalCharacters_2() METHOD +UnitTestCaseAction 1473858811822 StringCalculatorTest.java OK +UnitTestSessionAction 1473858811822 StringCalculatorTest.java OK +UnitTestCaseAction 1473858844663 StringCalculatorTest.java OK +UnitTestSessionAction 1473858844663 StringCalculatorTest.java OK +EditAction 1473858890324 StringCalculator.java 1071 1 6 0 +UnitTestCaseAction 1473858892979 StringCalculatorTest.java FAIL +UnitTestSessionAction 1473858892979 StringCalculatorTest.java FAIL +EditAction 1473858899235 StringCalculator.java 1072 1 6 0 +UnitTestCaseAction 1473858902170 StringCalculatorTest.java OK +UnitTestSessionAction 1473858902170 StringCalculatorTest.java OK +EditAction 1473858956584 StringCalculator.java 1116 1 7 0 +EditAction 1473858963167 StringCalculator.java 1114 1 7 0 +UnitTestCaseAction 1473858965932 StringCalculatorTest.java OK +UnitTestSessionAction 1473858965932 StringCalculatorTest.java OK diff --git a/.besouro/2016091415302846/besouroEpisodes.txt b/.besouro/2016091415302846/besouroEpisodes.txt new file mode 100644 index 0000000..cfda047 --- /dev/null +++ b/.besouro/2016091415302846/besouroEpisodes.txt @@ -0,0 +1,353 @@ +1473856449390 test-last 1 221 false +1473856449391 test-last 1 221 false +1473856711264 test-last 1 33 false +1473856711265 test-last 1 33 false +1473856730456 test-addition 1 13 true +1473856730457 test-addition 1 13 true +1473856865113 test-last 1 29 false +1473856865114 test-last 1 29 false +1473856888506 test-addition 1 18 true +1473856888507 test-addition 1 18 true +1473857236459 test-last 1 44 false +1473857236460 test-last 1 44 false +1473857281671 test-addition 1 40 true +1473857281672 test-addition 1 40 true +1473857321423 test-addition 1 34 true +1473857321424 test-addition 1 34 true +1473857365714 test-addition 1 30 true +1473857365715 test-addition 1 30 true +1473857440504 refactoring 2A 3 true +1473857960567 production 1 508 false +1473857960568 refactoring 2A 508 true +1473857960569 production 2 508 false +1473857960570 refactoring 2A 508 true +1473858051066 test-addition 1 63 true +1473858051067 test-addition 1 63 true +1473858104219 test-addition 1 44 true +1473858104220 test-addition 1 44 true +1473858675968 test-first 1 564 true +1473858675969 test-first 1 564 true +1473858675970 test-first 1 564 true +1473858675971 test-first 1 564 true +1473858675972 test-first 1 564 true +1473858675973 test-first 1 564 true +1473858675974 test-first 1 564 true +1473858675975 test-first 1 564 true +1473858675976 test-first 1 564 true +1473858675977 test-first 1 564 true +1473858675978 test-first 1 564 true +1473858675979 test-first 1 564 true +1473858675980 test-first 1 564 true +1473858675981 test-first 1 564 true +1473858675982 test-first 1 564 true +1473858675983 test-first 1 564 true +1473858675984 test-first 1 564 true +1473858675985 test-first 1 564 true +1473858675986 test-first 1 564 true +1473858675987 test-first 1 564 true +1473858675988 test-first 1 564 true +1473858675989 test-first 1 564 true +1473858675990 test-first 1 564 true +1473858675991 test-first 1 564 true +1473858675992 test-first 1 564 true +1473858675993 test-first 1 564 true +1473858675994 test-first 1 564 true +1473858675995 test-first 1 564 true +1473858675996 test-first 1 564 true +1473858675997 test-first 1 564 true +1473858675998 test-first 1 564 true +1473858675999 test-first 1 564 true +1473858676000 test-first 1 564 true +1473858676001 test-first 1 564 true +1473858676002 test-first 1 564 true +1473858676003 test-first 1 564 true +1473858676004 test-first 1 564 true +1473858676005 test-first 1 564 true +1473858676006 test-first 1 564 true +1473858676007 test-first 1 564 true +1473858676008 test-first 1 564 true +1473858676009 test-first 1 564 true +1473858676010 test-first 1 564 true +1473858676011 test-first 1 564 true +1473858676012 test-first 1 564 true +1473858676013 test-first 1 564 true +1473858676014 test-first 1 564 true +1473858676015 test-first 1 564 true +1473858676016 test-first 1 564 true +1473858676017 test-first 1 564 true +1473858676018 test-first 1 564 true +1473858676019 test-first 1 564 true +1473858676020 test-first 1 564 true +1473858676021 test-first 1 564 true +1473858676022 test-first 1 564 true +1473858676023 test-first 1 564 true +1473858676024 test-first 1 564 true +1473858676025 test-first 1 564 true +1473858676026 test-first 1 564 true +1473858676027 test-first 1 564 true +1473858676028 test-first 1 564 true +1473858676029 test-first 1 564 true +1473858676030 test-first 1 564 true +1473858676031 test-first 1 564 true +1473858676032 test-first 1 564 true +1473858676033 test-first 1 564 true +1473858676034 test-first 1 564 true +1473858676035 test-first 1 564 true +1473858676036 test-first 1 564 true +1473858676037 test-first 1 564 true +1473858676038 test-first 1 564 true +1473858676039 test-first 1 564 true +1473858676040 test-first 1 564 true +1473858676041 test-first 1 564 true +1473858676042 test-first 1 564 true +1473858676043 test-first 1 564 true +1473858676044 test-first 1 564 true +1473858676045 test-first 1 564 true +1473858676046 test-first 1 564 true +1473858676047 test-first 1 564 true +1473858676048 test-first 1 564 true +1473858676049 test-first 1 564 true +1473858676050 test-first 1 564 true +1473858676051 test-first 1 564 true +1473858676052 test-first 1 564 true +1473858676053 test-first 1 564 true +1473858676054 test-first 1 564 true +1473858676055 test-first 1 564 true +1473858676056 test-first 1 564 true +1473858676057 test-first 1 564 true +1473858676058 test-first 1 564 true +1473858676059 test-first 1 564 true +1473858676060 test-first 1 564 true +1473858676061 test-first 1 564 true +1473858676062 test-first 1 564 true +1473858676063 test-first 1 564 true +1473858676064 test-first 1 564 true +1473858676065 test-first 1 564 true +1473858676066 test-first 1 564 true +1473858676067 test-first 1 564 true +1473858676068 test-first 1 564 true +1473858676069 test-first 1 564 true +1473858676070 test-first 1 564 true +1473858676071 test-first 1 564 true +1473858676072 test-first 1 564 true +1473858676073 test-first 1 564 true +1473858676074 test-first 1 564 true +1473858676075 test-first 1 564 true +1473858676076 test-first 1 564 true +1473858676077 test-first 1 564 true +1473858676078 test-first 1 564 true +1473858676079 test-first 1 564 true +1473858676080 test-first 1 564 true +1473858676081 test-first 1 564 true +1473858676082 test-first 1 564 true +1473858676083 test-first 1 564 true +1473858676084 test-first 1 564 true +1473858676085 test-first 1 564 true +1473858676086 test-first 1 564 true +1473858676087 test-first 1 564 true +1473858676088 test-first 1 564 true +1473858676089 test-first 1 564 true +1473858676090 test-first 1 564 true +1473858676091 test-first 1 564 true +1473858676092 test-first 1 564 true +1473858676093 test-first 1 564 true +1473858676094 test-first 1 564 true +1473858676095 test-first 1 564 true +1473858676096 test-first 1 564 true +1473858676097 test-first 1 564 true +1473858676098 test-first 1 564 true +1473858676099 test-first 1 564 true +1473858676100 test-first 1 564 true +1473858676101 test-first 1 564 true +1473858676102 test-first 1 564 true +1473858676103 test-first 1 564 true +1473858676104 test-first 1 564 true +1473858676105 test-first 1 564 true +1473858676106 test-first 1 564 true +1473858676107 test-first 1 564 true +1473858676108 test-first 1 564 true +1473858676109 test-first 1 564 true +1473858676110 test-first 1 564 true +1473858676111 test-first 1 564 true +1473858676112 test-first 1 564 true +1473858676113 test-first 1 564 true +1473858676114 test-first 1 564 true +1473858676115 test-first 1 564 true +1473858676116 test-first 1 564 true +1473858676117 test-first 1 564 true +1473858676118 test-first 1 564 true +1473858676119 test-first 1 564 true +1473858676120 test-first 1 564 true +1473858676121 test-first 1 564 true +1473858676122 test-first 1 564 true +1473858676123 test-first 1 564 true +1473858676124 test-first 1 564 true +1473858676125 test-first 1 564 true +1473858676126 test-first 1 564 true +1473858676127 test-first 1 564 true +1473858676128 test-first 1 564 true +1473858676129 test-first 1 564 true +1473858676130 test-first 1 564 true +1473858676131 test-first 1 564 true +1473858676132 test-first 1 564 true +1473858676133 test-first 1 564 true +1473858676134 test-first 1 564 true +1473858676135 test-first 1 564 true +1473858676136 test-first 1 564 true +1473858676137 test-first 1 564 true +1473858676138 test-first 1 564 true +1473858676139 test-first 1 564 true +1473858676140 test-first 1 564 true +1473858676141 test-first 1 564 true +1473858676142 test-first 1 564 true +1473858676143 test-first 1 564 true +1473858676144 test-first 1 564 true +1473858676145 test-first 1 564 true +1473858676146 test-first 1 564 true +1473858676147 test-first 1 564 true +1473858676148 test-first 1 564 true +1473858676149 test-first 1 564 true +1473858676150 test-first 1 564 true +1473858676151 test-first 1 564 true +1473858676152 test-first 1 564 true +1473858676153 test-first 1 564 true +1473858676154 test-first 1 564 true +1473858676155 test-first 1 564 true +1473858676156 test-first 1 564 true +1473858676157 test-first 1 564 true +1473858676158 test-first 1 564 true +1473858676159 test-first 1 564 true +1473858676160 test-first 1 564 true +1473858676161 test-first 1 564 true +1473858676162 test-first 1 564 true +1473858676163 test-first 1 564 true +1473858676164 test-first 1 564 true +1473858676165 test-first 1 564 true +1473858676166 test-first 1 564 true +1473858676167 test-first 1 564 true +1473858676168 test-first 1 564 true +1473858676169 test-first 1 564 true +1473858676170 test-first 1 564 true +1473858676171 test-first 1 564 true +1473858676172 test-first 1 564 true +1473858676173 test-first 1 564 true +1473858676174 test-first 1 564 true +1473858676175 test-first 1 564 true +1473858676176 test-first 1 564 true +1473858676177 test-first 1 564 true +1473858676178 test-first 1 564 true +1473858676179 test-first 1 564 true +1473858676180 test-first 1 564 true +1473858676181 test-first 1 564 true +1473858676182 test-first 1 564 true +1473858676183 test-first 1 564 true +1473858676184 test-first 1 564 true +1473858676185 test-first 1 564 true +1473858676186 test-first 1 564 true +1473858676187 test-first 1 564 true +1473858676188 test-first 1 564 true +1473858676189 test-first 1 564 true +1473858676190 test-first 1 564 true +1473858676191 test-first 1 564 true +1473858676192 test-first 1 564 true +1473858676193 test-first 1 564 true +1473858676194 test-first 1 564 true +1473858676195 test-first 1 564 true +1473858676196 test-first 1 564 true +1473858676197 test-first 1 564 true +1473858676198 test-first 1 564 true +1473858676199 test-first 1 564 true +1473858676200 test-first 1 564 true +1473858676201 test-first 1 564 true +1473858676202 test-first 1 564 true +1473858676203 test-first 1 564 true +1473858676204 test-first 1 564 true +1473858676205 test-first 1 564 true +1473858676206 test-first 1 564 true +1473858676207 test-first 1 564 true +1473858676208 test-first 1 564 true +1473858676209 test-first 1 564 true +1473858676210 test-first 1 564 true +1473858676211 test-first 1 564 true +1473858676212 test-first 1 564 true +1473858676213 test-first 1 564 true +1473858676214 test-first 1 564 true +1473858676215 test-first 1 564 true +1473858676216 test-first 1 564 true +1473858676217 test-first 1 564 true +1473858676218 test-first 1 564 true +1473858676219 test-first 1 564 true +1473858676220 test-first 1 564 true +1473858676221 test-first 1 564 true +1473858676222 test-first 1 564 true +1473858676223 test-first 1 564 true +1473858676224 test-first 1 564 true +1473858676225 test-first 1 564 true +1473858676226 test-first 1 564 true +1473858676227 test-first 1 564 true +1473858676228 test-first 1 564 true +1473858676229 test-first 1 564 true +1473858676230 test-first 1 564 true +1473858676231 test-first 1 564 true +1473858676232 test-first 1 564 true +1473858676233 test-first 1 564 true +1473858676234 test-first 1 564 true +1473858676235 test-first 1 564 true +1473858676236 test-first 1 564 true +1473858676237 test-first 1 564 true +1473858676238 test-first 1 564 true +1473858676239 test-first 1 564 true +1473858676240 test-first 1 564 true +1473858676241 test-first 1 564 true +1473858676242 test-first 1 564 true +1473858676243 test-first 1 564 true +1473858676244 test-first 1 564 true +1473858676245 test-first 1 564 true +1473858676246 test-first 1 564 true +1473858676247 test-first 1 564 true +1473858676248 test-first 1 564 true +1473858676249 test-first 1 564 true +1473858676250 test-first 1 564 true +1473858676251 test-first 1 564 true +1473858676252 test-first 1 564 true +1473858676253 test-first 1 564 true +1473858676254 test-first 1 564 true +1473858676255 test-first 1 564 true +1473858676256 test-first 1 564 true +1473858676257 test-first 1 564 true +1473858676258 test-first 1 564 true +1473858676259 test-first 1 564 true +1473858676260 test-first 1 564 true +1473858676261 test-first 1 564 true +1473858676262 test-first 1 564 true +1473858676263 test-first 1 564 true +1473858676264 test-first 1 564 true +1473858676265 test-first 1 564 true +1473858676266 test-first 1 564 true +1473858676267 test-first 1 564 true +1473858676268 test-first 1 564 true +1473858676269 test-first 1 564 true +1473858676270 test-first 1 564 true +1473858676271 test-first 1 564 true +1473858676272 test-first 1 564 true +1473858676273 test-first 1 564 true +1473858676274 test-first 1 564 true +1473858676275 test-first 1 564 true +1473858676276 test-first 1 564 true +1473858676277 test-first 1 564 true +1473858676278 test-first 1 564 true +1473858676279 test-first 1 564 true +1473858676280 test-first 1 564 true +1473858676281 test-first 1 564 true +1473858676282 test-first 1 564 true +1473858676283 test-first 1 564 true +1473858717810 test-last 1 27 false +1473858772288 test-addition 1 41 true +1473858772289 test-addition 1 41 true +1473858772290 test-addition 1 41 true +1473858811822 test-addition 1 33 true +1473858811823 test-addition 1 33 true +1473858844663 regression 1 0 true +1473858902170 refactoring 2A 11 true +1473858965932 refactoring 2A 9 true +1473858965933 production 1 9 false diff --git a/.besouro/2016091415302846/disagreements.txt b/.besouro/2016091415302846/disagreements.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/2016091415302846/randomHeuristicEpisodes.txt b/.besouro/2016091415302846/randomHeuristicEpisodes.txt new file mode 100644 index 0000000..67c2896 --- /dev/null +++ b/.besouro/2016091415302846/randomHeuristicEpisodes.txt @@ -0,0 +1,20 @@ +1473856449390 test-last 1 221 false +1473856711264 test-last 1 33 false +1473856730456 test-addition 1 13 false +1473856865113 test-last 1 29 false +1473856888506 test-addition 1 18 false +1473857236459 test-last 1 44 false +1473857281671 test-addition 1 40 false +1473857321423 test-addition 1 34 true +1473857365714 test-addition 1 30 true +1473857440504 refactoring 2A 3 false +1473857960567 production 1 508 false +1473858051066 test-addition 1 63 true +1473858104219 test-addition 1 44 true +1473858675968 test-first 1 564 true +1473858717810 test-last 1 27 false +1473858772288 test-addition 1 41 true +1473858811822 test-addition 1 33 false +1473858844663 regression 1 0 true +1473858902170 refactoring 2A 11 true +1473858965932 refactoring 2A 9 true diff --git a/.besouro/2016091415302846/userComments.txt b/.besouro/2016091415302846/userComments.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/2016091415302846/zorroEpisodes.txt b/.besouro/2016091415302846/zorroEpisodes.txt new file mode 100644 index 0000000..2eb63e2 --- /dev/null +++ b/.besouro/2016091415302846/zorroEpisodes.txt @@ -0,0 +1,20 @@ +1473856449390 test-last 1 221 false +1473856711264 test-last 1 261 false +1473856730456 test-addition 1 19 false +1473856865113 test-last 1 134 false +1473856888506 test-addition 1 23 false +1473857236459 test-last 1 347 false +1473857281671 test-addition 1 45 true +1473857321423 test-addition 1 39 true +1473857365714 test-addition 1 44 true +1473857440504 refactoring 2A 74 true +1473857960567 production 1 520 true +1473858051066 test-addition 1 90 true +1473858104219 test-addition 1 53 true +1473858675968 test-first 1 571 true +1473858717810 test-last 1 41 false +1473858772288 test-addition 1 54 false +1473858811822 test-addition 1 39 false +1473858844663 regression 1 32 false +1473858902170 refactoring 2A 57 false +1473858965932 refactoring 2A 63 false diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..249513b --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,3 @@ +/StringCalculator.class +/StringCalculatorException.class +/StringCalculatorTest.class diff --git a/bin/StringCalculator.class b/bin/StringCalculator.class index a937b0c..d93348b 100644 Binary files a/bin/StringCalculator.class and b/bin/StringCalculator.class differ diff --git a/bin/StringCalculatorTest.class b/bin/StringCalculatorTest.class index d44b83f..c0f2ccf 100644 Binary files a/bin/StringCalculatorTest.class and b/bin/StringCalculatorTest.class differ diff --git a/src/StringCalculator.java b/src/StringCalculator.java index 487916b..b9d5eb2 100644 --- a/src/StringCalculator.java +++ b/src/StringCalculator.java @@ -1,9 +1,42 @@ +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class StringCalculator { - public int add(String numbersStr) { - // Returns the sum of the numbers given in numbersStr + /** + * Returns the sum of the numbers given in numbersStr + */ + public static int add(String numbersStr) throws StringCalculatorException { + // Returns 0 for an empty string + if (numbersStr == "") { + return 0; + } - // not yet implemented - return 0; + // Returns the same number when given only one number + if (numbersStr.matches("\\d+")) { + return Integer.parseInt(numbersStr); + } + + // Newlines and commas are not allowed next to each other + Pattern p = Pattern.compile(",\\n|\\n,"); + Matcher m = p.matcher(numbersStr); + if (m.find()) { + throw new StringCalculatorException(); + } + + // Returns the sum of an unknown amount of numbers, + // separated by commas or newlines + if (numbersStr.matches("\\d+[\\d,\\n]+\\d+")) { + String numbers[] = numbersStr.split(",+|\\n+"); + + int sum = 0; + for (String number : numbers) { + sum += Integer.parseInt(number); + } + + return sum; + } + + // The string contains illegal characters + throw new StringCalculatorException(); } } diff --git a/src/StringCalculatorException.java b/src/StringCalculatorException.java index da71147..0856125 100644 --- a/src/StringCalculatorException.java +++ b/src/StringCalculatorException.java @@ -1,4 +1,4 @@ public class StringCalculatorException extends Exception { - + } diff --git a/tests/StringCalculatorTest.java b/tests/StringCalculatorTest.java index 4ec9afe..4833234 100644 --- a/tests/StringCalculatorTest.java +++ b/tests/StringCalculatorTest.java @@ -3,10 +3,189 @@ import org.junit.Test; public class StringCalculatorTest { + @Test + public void testStringCalculator_EmptyString() throws StringCalculatorException { + // Arrange + String numbers = ""; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("Empty string", 0, sum); + } + + @Test + public void testStringCalculator_OneNumber() throws StringCalculatorException { + // Arrange + String numbers = "5"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("One number (5)", 5, sum); + } + + @Test + public void testStringCalculator_OneNumber_2() throws StringCalculatorException { + // Arrange + String numbers = "37"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("One number (37)", 37, sum); + } + + @Test + public void testStringCalculator_TwoNumbers() throws StringCalculatorException { + // Arrange + String numbers = "3,9"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("Two numbers (3, 9)", 12, sum); + } + + @Test + public void testStringCalculator_TwoNumbers_2() throws StringCalculatorException { + // Arrange + String numbers = "50,0"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("Two numbers (50, 0)", 50, sum); + } + + @Test + public void testStringCalculator_ManyNumbers() throws StringCalculatorException { + // Arrange + String numbers = "7,7,16"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("Many numbers (7, 7, 16)", 30, sum); + } + + @Test + public void testStringCalculator_ManyNumbers_2() throws StringCalculatorException { + // Arrange + String numbers = "1,2,3,4,5,6,7,8,9,100"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("Many numbers (1...9, 100)", 145, sum); + } @Test - public void test() { - fail("Not yet implemented"); + public void testStringCalculator_TwoNumbers_ManyCommas() throws StringCalculatorException { + // Arrange + String numbers = "5,,,8"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("Two numbers, many commas (\"5,,,8\")", 13, sum); } + @Test + public void testStringCalculator_ManyNumbers_ManyCommas() throws StringCalculatorException { + // Arrange + String numbers = "1,,2,6,,0"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("Many numbers, many commas (\"1,,2,6,,0\")", 9, sum); + } + + @Test + public void testStringCalculator_ManyNumbers_NewlineAndComma() throws StringCalculatorException { + // Arrange + String numbers = "1,2\n6"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("Many numbers, newline and comma (\"1,2\\n,6\")", 9, sum); + } + + @Test + public void testStringCalculator_ManyNumbers_NewlinesOnly() throws StringCalculatorException { + // Arrange + String numbers = "1\n0\n\n8\n10"; + + // Act + int sum = StringCalculator.add(numbers); + + // Assert + assertEquals("Many numbers, newlines only (\"1\\n0\\n\\n8\\n10\")", 19, sum); + } + + @Test (expected = StringCalculatorException.class) + public void testStringCalculator_NewlineAndCommaNextToEachOther() throws StringCalculatorException { + // Arrange + String numbers = "1\n,2"; + + // Act, should raise an exception + StringCalculator.add(numbers); + } + + @Test (expected = StringCalculatorException.class) + public void testStringCalculator_CommaAndNewlineNextToEachOther() throws StringCalculatorException { + // Arrange + String numbers = "3,\n4"; + + // Act, should raise an exception + StringCalculator.add(numbers); + } + + @Test (expected = StringCalculatorException.class) + public void testStringCalculator_OneNegativeNumber() throws StringCalculatorException { + // Arrange + String numbers = "-100"; + + // Act, should raise an exception + StringCalculator.add(numbers); + } + + @Test (expected = StringCalculatorException.class) + public void testStringCalculator_WithNegativeNumber() throws StringCalculatorException { + // Arrange + String numbers = "4,-5"; + + // Act, should raise an exception + StringCalculator.add(numbers); + } + + @Test (expected = StringCalculatorException.class) + public void testStringCalculator_IllegalCharacters() throws StringCalculatorException { + // Arrange + String numbers = "1,3.6"; + + // Act, should raise an exception + StringCalculator.add(numbers); + } + + @Test (expected = StringCalculatorException.class) + public void testStringCalculator_IllegalCharacters_2() throws StringCalculatorException { + // Arrange + String numbers = "1,3,6,5e2"; + + // Act, should raise an exception + StringCalculator.add(numbers); + } }