public void CalculateScoreForFrameTest_PerfectGameOfOnlyStrikes() { // arrange TraditionalBowlingScoringCalculator scoreCalculator = new TraditionalBowlingScoringCalculator(); IList <BowlingFrame> playedFrames = new List <BowlingFrame>(); for (int i = 0; i < 9; i++) { playedFrames.Add(BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 0 })); } playedFrames.Add(BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 10, 10 })); int totalScore = 0; int[] expectedResults = new[] { 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 }; for (int i = 0; i < playedFrames.Count; i++) { // act int frameScore = scoreCalculator.CalculateScoreForSingleFrame(i + 1, playedFrames); totalScore += frameScore; // assert Assert.AreEqual(frameScore, expectedResults[i]); } Assert.AreEqual(totalScore, 300); }
public void CalculateScoreForFrameTest_summationsForFinishedGame_variant() { // arrange TraditionalBowlingScoringCalculator scoreCalculator = new TraditionalBowlingScoringCalculator(); IList <BowlingFrame> playedFrames = new List <BowlingFrame>() { BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 7, 1 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 0, 2 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 0, 10 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 6, 4 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 0 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 0 }) }; int[] pointsSummationsAfterGame = new[] { 8, 10, 26, 46, 66, 76 }; for (int i = 0; i < playedFrames.Count; i++) { scoreCalculator.AddPlayedBowlingFrame(playedFrames[i]); } int totalPoints = 0; for (int j = 1; j <= playedFrames.Count; j++) { totalPoints += scoreCalculator.CalculateScoreForSingleFrame(j, playedFrames); Assert.AreEqual(totalPoints, pointsSummationsAfterGame[j - 1]); } }
public void CalculateScoreForFrameTest_SpecificGame() { // arrange TraditionalBowlingScoringCalculator scoreCalculator = new TraditionalBowlingScoringCalculator(); IList <BowlingFrame> playedFrames = new List <BowlingFrame>() { BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 3, 7 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 0 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 8, 2 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 8, 1 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 0 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 3, 4 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 7, 0 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 5, 5 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 3, 2 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 2, 5 }) }; int totalScore = 0; int[] expectedResults = new[] { 20, 20, 18, 9, 17, 7, 7, 13, 5, 7 }; for (int i = 0; i < playedFrames.Count; i++) { // act int frameScore = scoreCalculator.CalculateScoreForSingleFrame(i + 1, playedFrames); totalScore += frameScore; // assert Assert.AreEqual(frameScore, expectedResults[i]); } Assert.AreEqual(totalScore, 123); }
public void CalculateScoreForFrameTest_firstFrameIsAStrikeNextIsOpenFrame() { // arrange TraditionalBowlingScoringCalculator scoreCalculator = new TraditionalBowlingScoringCalculator(); IList <BowlingFrame> playedFrames = new List <BowlingFrame>() { BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 0 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 5, 1 }) }; // act int frame1Score = scoreCalculator.CalculateScoreForSingleFrame(1, playedFrames); int frame2Score = scoreCalculator.CalculateScoreForSingleFrame(2, playedFrames); // assert Assert.AreEqual(frame1Score, 16); Assert.AreEqual(frame2Score, 6); }
public void CalculateScoreForFrameTest_noStrikesGame() { // arrange TraditionalBowlingScoringCalculator scoreCalculator = new TraditionalBowlingScoringCalculator(); IList <BowlingFrame> playedFrames = new List <BowlingFrame>() { BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 7, 2 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 5, 0 }) }; // act int frame1Score = scoreCalculator.CalculateScoreForSingleFrame(1, playedFrames); int frame2Score = scoreCalculator.CalculateScoreForSingleFrame(2, playedFrames); // assert Assert.AreEqual(frame1Score, 9); Assert.AreEqual(frame2Score, 5); }
public void CalculateScoreForFrameTest_frameNumberOutOfBounds() { // arrange TraditionalBowlingScoringCalculator scoreCalculator = new TraditionalBowlingScoringCalculator(); IList <BowlingFrame> playedFrames = new List <BowlingFrame>() { BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 7, 3 }) }; // act/assert scoreCalculator.CalculateScoreForSingleFrame(2, playedFrames); }
public void CalculateScoreForFrameTest_TooManyFramePoints() { // arrange TraditionalBowlingScoringCalculator scoreCalculator = new TraditionalBowlingScoringCalculator(); IList <BowlingFrame> playedFrames = new List <BowlingFrame>() { BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 0 }), BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 5, 4, 3 }) }; // act/assert int frameScore = scoreCalculator.CalculateScoreForSingleFrame(2, playedFrames); }
public void CalculateScoreForFrameTest_SuperflousFrame() { // arrange TraditionalBowlingScoringCalculator scoreCalculator = new TraditionalBowlingScoringCalculator(); IList <BowlingFrame> playedFrames = new List <BowlingFrame>(); for (int i = 0; i < 11; i++) { playedFrames.Add(BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 10, 10 })); } // act/assert int frameScore = scoreCalculator.CalculateScoreForSingleFrame(3, playedFrames); }
public void CalculateScoreForFrameTest_singleFrameStrikeNoOtherFrames() { // arrange TraditionalBowlingScoringCalculator scoreCalculator = new TraditionalBowlingScoringCalculator(); IList <BowlingFrame> playedFrames = new List <BowlingFrame>() { BowlingFrame.CreateAndValidateFrameFromPoints(new int[] { 10, 0 }) }; // act int frame1Score = scoreCalculator.CalculateScoreForSingleFrame(1, playedFrames); // assert Assert.AreEqual(frame1Score, 10); }