From a57cf9358d4720dec409679320089aa1ba85047b Mon Sep 17 00:00:00 2001 From: binsky Date: Wed, 24 Nov 2021 10:43:00 +0100 Subject: [PATCH] score implementation refactoring for the incomplete frames test --- src/main/java/BowlingGameCalculator.java | 8 ++++++-- src/test/java/BowlingCalculatorTest.java | 3 ++- target/classes/BowlingGameCalculator.class | Bin 900 -> 1084 bytes .../test-classes/BowlingCalculatorTest.class | Bin 1766 -> 1867 bytes 4 files changed, 8 insertions(+), 3 deletions(-) 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 2f923a433d4da15bc1de7cb7678cf5dd45e066af..cb9921db9820be5adf5e7eeb49e584fc0b00d9ad 100644 GIT binary patch delta 448 zcmYL_+e!ja6o&sjqs=(ZWO<^5r1L>DvvZRKA`$~Og_>7^OeQ3W22I!9bkSwQ-1P+A zNktJ6JwOl9n-r}Xh4#hT|5~j7c&ED|nj z`d+b6tLBPFh1y}RQYn;lJHv&od&xhDfPf(x!w6dXnAQCbikN2Lj!z{FVphf+=B+a| z%@ERbt)k_MwQ~NT)Tc2pjX}wG+Lxx$HmgSKs=-qh*bnSwR4JQA{e0iJs2C@$27{Qb zx0>yyxoda0R8j;-iyUH3P*O20AOVJ?J6!}%+KU0IDZ9%>)g_uc9pFKls_benmXV>3 zVFi=UF6mpMdgva1f{=WLVlzH|?bxFP1SI+)KUL?^3gQU3xJ1v=$B`MUSR}rTGMToZ|~lyXTPK@^Ga#5le{u+%~Ub#X6{Xcnas_Ort5d7(4+AHd*KVA?`$B<=F)C?9_Vp%FhjjCuG?g}g`UiIA``T7eZ zNjEbcrhsv|kzzFR3?3!&%uwh9YlF}~P~y~C5u|2<2CD)!k`GuT!@5v3&JV_=tV*)A IAsvU!KlO z8$10EJ8L`RVNC2y-aYr8d(U0oN9TK2zmLl_b0b81yvt2IvTx^{MX zT&rGP*bQ4dsUKBsCxnbZe|Av&|8-y-6G2Qyk;asO>VEoF_f=+u@$eYn6@F$uCVZDP(o7`wAhoYmdstl)RT%IKBlgH%|P_;ilnr& z$%u|v8Xj@Lp$^EiPM01FEVD*mn&U|QP_ARmoQyc-Oyv9yGvb0kZ;*z{bWctQZ8xKI l>-jU1cR!A&Y>uUx?EDq2hE**LsVbr=eksLrCC4yh*T08{Bw7Ff