diff --git a/src/main/java/BowlingGameCalculator.java b/src/main/java/BowlingGameCalculator.java index ca7a74f..27ce370 100644 --- a/src/main/java/BowlingGameCalculator.java +++ b/src/main/java/BowlingGameCalculator.java @@ -2,9 +2,13 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class BowlingGameCalculator { + + private static final Pattern SINGLE_VALUE_PATTERN = Pattern.compile("\\d"); + private static final int INITIAL_SCORE_VALUE = 0; + public int score(String playerResult) { - Matcher singleDigit = Pattern.compile("\\d").matcher(playerResult); - int playerScore = 0; + Matcher singleDigit = SINGLE_VALUE_PATTERN.matcher(playerResult); + int playerScore = INITIAL_SCORE_VALUE; while (singleDigit.find()) { playerScore += Integer.parseInt(singleDigit.group()); } diff --git a/src/test/java/BowlingCalculatorTest.java b/src/test/java/BowlingCalculatorTest.java index 9453b41..91755ee 100644 --- a/src/test/java/BowlingCalculatorTest.java +++ b/src/test/java/BowlingCalculatorTest.java @@ -21,7 +21,8 @@ public class BowlingCalculatorTest { private static Stream playerResults() { return Stream.of( Arguments.of("worst game", "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", 0), // 20x 0 - Arguments.of("some incomplete frames", "0,1,2,3,0,0,4,0,0,5,0,0,6,0,0,0,0,0,0,0", 21) + Arguments.of("some incomplete frames", "0,1,2,3,0,0,4,0,0,5,0,0,6,0,0,0,0,0,0,0", 21), + Arguments.of("some other incomplete frames", "9- 9- 9- 9- 9- 9- 9- 9- 9- 9-", 90) ); } } diff --git a/target/classes/BowlingGameCalculator.class b/target/classes/BowlingGameCalculator.class index 2f923a4..cb9921d 100644 Binary files a/target/classes/BowlingGameCalculator.class and b/target/classes/BowlingGameCalculator.class differ diff --git a/target/test-classes/BowlingCalculatorTest.class b/target/test-classes/BowlingCalculatorTest.class index 28252a4..fd22f84 100644 Binary files a/target/test-classes/BowlingCalculatorTest.class and b/target/test-classes/BowlingCalculatorTest.class differ