Guest User

Untitled

a guest
Dec 15th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Linq;
  6. namespace Lvvwd.Test
  7. {
  8. [TestClass]
  9. public class BowlingCalculatorTest
  10. {
  11. BowlingCalculator sut;
  12. [TestInitialize]
  13. public void Init()
  14. { sut = new BowlingCalculator(); }
  15. //all 0s
  16. [TestMethod]
  17. public void Calculate_AllZeroTest()
  18. {
  19. sut.Score = new List<int> { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  20. int result = sut.CalculateScore();
  21. Assert.AreEqual(result, 0);
  22. }
  23. //all 1s
  24. [TestMethod]
  25. public void Calculate_AllOnesTest()
  26. {
  27. sut.Score = new List<int> { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
  28. int result = sut.CalculateScore();
  29. Assert.AreEqual(result, 20);
  30. }
  31.  
  32. //spare 9, 1, 1, 0s
  33. //all 1s
  34. [TestMethod]
  35. public void Calculate_Spare()
  36. {
  37. sut.Score = new List<int> { 9, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  38. int result = sut.CalculateScore();
  39. Assert.AreEqual(sut.Frames[0], 11);
  40. Assert.AreEqual(result, 12);
  41. }
  42.  
  43. [TestMethod]
  44. public void Calculate_Strike()
  45. {
  46. sut.Score = new List<int> { 10, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  47. int result = sut.CalculateScore();
  48. Assert.AreEqual(result, 14);
  49. Assert.AreEqual(sut.Frames[0], 12);
  50. }
  51.  
  52. [TestMethod]
  53. public void Calculate_TenthFrameSpare()
  54. {
  55. sut.Score = new List<int> { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 10 };
  56. int result = sut.CalculateScore();
  57. Assert.AreEqual(result, 21);
  58. Assert.AreEqual(sut.Frames[9], 20);
  59. }
  60. [TestMethod]
  61. public void Calculate_TenthFrameStrike()
  62. {
  63. sut.Score = new List<int> { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10 };
  64. int result = sut.CalculateScore();
  65. Assert.AreEqual(result, 31);
  66. Assert.AreEqual(sut.Frames[9], 30);
  67. }
  68. }
  69. public class BowlingCalculator
  70. {
  71. internal List<int> Score;
  72. internal int[] Frames = new int[10];
  73. internal int CalculateScore()
  74. {
  75. var index = 0;
  76. for (int i = 0; i < 10; i++)
  77. {
  78.  
  79. if (Score[index] == 10)
  80. {
  81. Frames[i] = Score[index] + Score[index + 1] + Score[index + 2];
  82. index++;
  83. }
  84. else if (Score[index] + Score[index + 1] == 10)
  85. {
  86. Frames[i] = Score[index] + Score[index + 1] + Score[index + 2];
  87. index += 2;
  88. }
  89. else
  90. {
  91. Frames[i] = Score[index] + Score[index + 1];
  92. index += 2;
  93. }
  94. }
  95. return Frames.Sum();
  96. }
  97. }
  98. }
Add Comment
Please, Sign In to add comment