Advertisement
Guest User

Untitled

a guest
Mar 4th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.47 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class ActionMaster {
  6.  
  7. public enum Action {Invalid, Reset, LiftAndSwipe, EndTurn, EndGame};
  8. private enum FrameTurn { Frame1To9, Frame10One, Frame10Two, Frame10Three }
  9.  
  10. public const string BAD_PATH = "Should never get here!!!";
  11.  
  12. public const int MAX_PINS = GameController.MAX_PINS;
  13. public const int FRAME_TURNS = GameController.FRAME_TURNS;
  14. public const int LAST_FRAME = GameController.LAST_FRAME;
  15.  
  16. public static Action TurnAction(List<int> pins) {
  17. Action turnAction = Action.Invalid;
  18. int turn = pins.Count;
  19. FrameTurn frameTurn = CalculateFrameTurn(pins);
  20.  
  21. if (frameTurn == FrameTurn.Frame1To9) {
  22. turnAction = TurnActionFrames1To9(pins, turn);
  23. } else {
  24. turnAction = TurnAction10thFrame(pins, turn, frameTurn);
  25. }
  26.  
  27. return turnAction;
  28. }
  29.  
  30. private static Action TurnAction10thFrame(List<int> pins, int turn, FrameTurn frameTurn) {
  31. Action turnAction = Action.Invalid;
  32.  
  33. switch (frameTurn) {
  34. case FrameTurn.Frame10One:
  35. if ((pins[CurrentTurnIdx(turn)] % MAX_PINS) == 0) {
  36. turnAction = Action.Reset;
  37. } else {
  38. turnAction = Action.LiftAndSwipe;
  39. }
  40. break;
  41. case FrameTurn.Frame10Two:
  42. if (((pins[PreviousTurnIdx(turn)] + pins[CurrentTurnIdx(turn)]) % MAX_PINS) == 0) {
  43. // Handle: Spare, 2 Strikes, or Strike and 0.
  44. if (pins[CurrentTurnIdx(turn)] == 0) {
  45. // Handle: Strike and zero.
  46. turnAction = Action.LiftAndSwipe;
  47. } else {
  48. // Handle: Spare, 2 Strikes.
  49. turnAction = Action.Reset;
  50. }
  51. } else if ((pins[PreviousTurnIdx(turn)] % MAX_PINS) == 0) {
  52. // Handle: A strike and something else.
  53. turnAction = Action.LiftAndSwipe;
  54. } else {
  55. // Handle: Open Frame.
  56. turnAction = Action.EndGame;
  57. }
  58. break;
  59. case FrameTurn.Frame10Three:
  60. // Handle: Clean up marks.
  61. turnAction = Action.EndGame;
  62. break;
  63. default:
  64. throw new UnityException(BAD_PATH);
  65. }
  66.  
  67. return turnAction;
  68. }
  69.  
  70. private static Action TurnActionFrames1To9(List<int> pins, int turn) {
  71. Action turnAction = Action.Invalid;
  72. int modulo = CalculateModulo(pins);
  73.  
  74. if (pins[CurrentTurnIdx(turn)] < MAX_PINS) {
  75. if ((turn % FRAME_TURNS) == modulo) {
  76. // Handle: < 10 pins knocked down on first ball.
  77. turnAction = Action.LiftAndSwipe;
  78. } else {
  79. // Handle: Spare or Open Frame.
  80. turnAction = Action.EndTurn;
  81. }
  82. } else {
  83. // Handle: Strike or Spare.
  84. turnAction = Action.EndTurn;
  85. }
  86.  
  87. return turnAction;
  88. }
  89.  
  90. private static int CalculateModulo(List<int> turnScores) {
  91. int modulo = 1;
  92. for (int turn = 1 ; turn < turnScores.Count ; ++turn) {
  93. if ((turnScores[CurrentTurnIdx(turn)] == MAX_PINS)) {
  94. if ((turn % FRAME_TURNS) == modulo) {
  95. modulo = ++modulo % FRAME_TURNS;
  96. }
  97. }
  98. }
  99. return modulo;
  100. }
  101.  
  102. private static FrameTurn CalculateFrameTurn(List<int> turnScores) {
  103. FrameTurn lastFrameTurn = FrameTurn.Frame1To9;
  104. int currentFrame = 1;
  105. int modulo = 0;
  106. int turn = 1;
  107. while ((turn < turnScores.Count) && (currentFrame < LAST_FRAME)) {
  108. if ((turnScores[CurrentTurnIdx(turn)] == MAX_PINS)) {
  109. ++currentFrame;
  110. modulo = ++modulo % FRAME_TURNS;
  111. } else if ((turn % FRAME_TURNS) == modulo) {
  112. ++currentFrame;
  113. }
  114. ++turn;
  115. }
  116.  
  117. if (currentFrame == LAST_FRAME) {
  118. lastFrameTurn = FrameTurn.Frame10One;
  119.  
  120. // Note: These must be in this order in the if.
  121. if ((turn + 2) <= turnScores.Count) {
  122. lastFrameTurn = FrameTurn.Frame10Three;
  123. } else if ((turn + 1) <= turnScores.Count) {
  124. lastFrameTurn = FrameTurn.Frame10Two;
  125. }
  126. }
  127.  
  128. return lastFrameTurn;
  129. }
  130.  
  131. private static int CurrentTurnIdx(int value) {
  132. return value - 1;
  133. }
  134.  
  135. private static int PreviousTurnIdx(int value) {
  136. return value - 2;
  137. }
  138.  
  139. }
  140.  
  141. =========================================================================================
  142. using System;
  143. using System.Collections.Generic;
  144. using System.Linq;
  145. using NUnit.Framework;
  146. using UnityEngine;
  147.  
  148. [TestFixture]
  149. public class ActionMasterTest {
  150.  
  151. private ActionMaster.Action endTurn = ActionMaster.Action.EndTurn;
  152. private ActionMaster.Action liftAndSwipe = ActionMaster.Action.LiftAndSwipe;
  153. private ActionMaster.Action endGame = ActionMaster.Action.EndGame;
  154. private ActionMaster.Action reset = ActionMaster.Action.Reset;
  155.  
  156. [SetUp]
  157. public void Setup() {
  158. }
  159.  
  160. [Test]
  161. public void T00True() {
  162. Assert.AreEqual (1, 1);
  163. }
  164.  
  165. [Test]
  166. public void T01FirstThrowZero() {
  167. List<int> pins = new List<int>();
  168. pins.Add(0);
  169. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  170. }
  171.  
  172. [Test]
  173. public void T04BowlStrikeFirstFrameReturnEndTurn() {
  174. List<int> pins = new List<int>();
  175. pins.Add(10);
  176. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  177. }
  178.  
  179.  
  180. [Test]
  181. public void T05Bowl8FirstFrameReturnLiftAndSwipe() {
  182. List<int> pins = new List<int>();
  183. pins.Add(8);
  184. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  185. }
  186.  
  187. [Test]
  188. public void T06Bowl52FirstFrameReturnEndTurn() {
  189. List<int> pins = new List<int>();
  190. pins.Add(5);
  191. pins.Add(2);
  192. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  193. }
  194.  
  195. [Test]
  196. public void T07Bowl52LastFramesReturnEndGame() {
  197. List<int> pins = new List<int>();
  198. pins.Add(5);
  199. pins.Add(2);
  200.  
  201. pins.Add(5);
  202. pins.Add(2);
  203.  
  204. pins.Add(5);
  205. pins.Add(2);
  206.  
  207. pins.Add(5);
  208. pins.Add(2);
  209.  
  210. pins.Add(5);
  211. pins.Add(2);
  212.  
  213. pins.Add(5);
  214. pins.Add(2);
  215.  
  216. pins.Add(5);
  217. pins.Add(2);
  218.  
  219. pins.Add(5);
  220. pins.Add(2);
  221.  
  222. pins.Add(5);
  223. pins.Add(2);
  224.  
  225. pins.Add(5);
  226. pins.Add(2);
  227.  
  228. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  229. }
  230.  
  231. [Test]
  232. public void T08BowlSpareLastFrameReturnEndGame() {
  233. List<int> pins = new List<int>();
  234. pins.Add(5);
  235. pins.Add(2);
  236.  
  237. pins.Add(5);
  238. pins.Add(2);
  239.  
  240. pins.Add(5);
  241. pins.Add(2);
  242.  
  243. pins.Add(5);
  244. pins.Add(2);
  245.  
  246. pins.Add(5);
  247. pins.Add(2);
  248.  
  249. pins.Add(5);
  250. pins.Add(2);
  251.  
  252. pins.Add(5);
  253. pins.Add(2);
  254.  
  255. pins.Add(5);
  256. pins.Add(2);
  257.  
  258. pins.Add(5);
  259. pins.Add(2);
  260.  
  261. pins.Add(6);
  262. pins.Add(4);
  263. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  264. pins.Add(2);
  265. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  266. }
  267.  
  268. [Test]
  269. public void T09Bowl2Strike2LastFrameReturnEndGame() {
  270. List<int> pins = new List<int>();
  271. pins.Add(5);
  272. pins.Add(2);
  273.  
  274. pins.Add(5);
  275. pins.Add(2);
  276.  
  277. pins.Add(5);
  278. pins.Add(2);
  279.  
  280. pins.Add(5);
  281. pins.Add(2);
  282.  
  283. pins.Add(5);
  284. pins.Add(2);
  285.  
  286. pins.Add(5);
  287. pins.Add(2);
  288.  
  289. pins.Add(5);
  290. pins.Add(2);
  291.  
  292. pins.Add(5);
  293. pins.Add(2);
  294.  
  295. pins.Add(5);
  296. pins.Add(2);
  297.  
  298. pins.Add(10);
  299. pins.Add(10);
  300. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  301. pins.Add(5);
  302. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  303. }
  304.  
  305. [Test]
  306. public void T10Bowl3StrikesLastFrameReturnEndGame() {
  307. List<int> pins = new List<int>();
  308. pins.Add(5);
  309. pins.Add(2);
  310.  
  311. pins.Add(5);
  312. pins.Add(2);
  313.  
  314. pins.Add(5);
  315. pins.Add(2);
  316.  
  317. pins.Add(5);
  318. pins.Add(2);
  319.  
  320. pins.Add(5);
  321. pins.Add(2);
  322.  
  323. pins.Add(5);
  324. pins.Add(2);
  325.  
  326. pins.Add(5);
  327. pins.Add(2);
  328.  
  329. pins.Add(5);
  330. pins.Add(2);
  331.  
  332. pins.Add(5);
  333. pins.Add(2);
  334.  
  335. pins.Add(10);
  336. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  337. pins.Add(10);
  338. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  339. pins.Add(10);
  340. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  341. }
  342.  
  343. [Test]
  344. public void T11BowlStrikesAndNotAllDownLastFrameReturnEndGame() {
  345. List<int> pins = new List<int>();
  346. pins.Add(5);
  347. pins.Add(2);
  348.  
  349. pins.Add(5);
  350. pins.Add(2);
  351.  
  352. pins.Add(5);
  353. pins.Add(2);
  354.  
  355. pins.Add(5);
  356. pins.Add(2);
  357.  
  358. pins.Add(5);
  359. pins.Add(2);
  360.  
  361. pins.Add(5);
  362. pins.Add(2);
  363.  
  364. pins.Add(5);
  365. pins.Add(2);
  366.  
  367. pins.Add(5);
  368. pins.Add(2);
  369.  
  370. pins.Add(5);
  371. pins.Add(2);
  372.  
  373. pins.Add(10);
  374. pins.Add(5);
  375. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  376. pins.Add(2);
  377. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  378. }
  379.  
  380. [Test]
  381. public void T12BowlStrikeZeroSomethingFrameReturnEndGame() {
  382. List<int> pins = new List<int>();
  383. pins.Add(5);
  384. pins.Add(2);
  385.  
  386. pins.Add(5);
  387. pins.Add(2);
  388.  
  389. pins.Add(5);
  390. pins.Add(2);
  391.  
  392. pins.Add(5);
  393. pins.Add(2);
  394.  
  395. pins.Add(5);
  396. pins.Add(2);
  397.  
  398. pins.Add(5);
  399. pins.Add(2);
  400.  
  401. pins.Add(5);
  402. pins.Add(2);
  403.  
  404. pins.Add(5);
  405. pins.Add(2);
  406.  
  407. pins.Add(5);
  408. pins.Add(2);
  409.  
  410. pins.Add(10);
  411. pins.Add(0);
  412. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  413. pins.Add(2);
  414. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  415. }
  416.  
  417. [Test]
  418. public void T13Bowl01053ReturnEndTurn() {
  419. List<int> pins = new List<int>();
  420. pins.Add(0);
  421. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  422. pins.Add(10);
  423. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  424.  
  425. pins.Add(5);
  426. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  427. pins.Add(3);
  428. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  429. }
  430.  
  431. [Test]
  432. public void T14AllStrikes() {
  433. List<int> pins = new List<int>();
  434. pins.Add(10);
  435. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  436.  
  437. pins.Add(10);
  438. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  439.  
  440. pins.Add(10);
  441. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  442.  
  443. pins.Add(10);
  444. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  445.  
  446. pins.Add(10);
  447. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  448.  
  449. pins.Add(10);
  450. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  451.  
  452. pins.Add(10);
  453. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  454.  
  455. pins.Add(10);
  456. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  457.  
  458. pins.Add(10);
  459. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  460.  
  461. pins.Add(10);
  462. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  463. pins.Add(10);
  464. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  465. pins.Add(10);
  466. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  467. }
  468.  
  469. //http://slocums.homestead.com/gamescore.html
  470. [Category ("Verification")]
  471. [Test]
  472. public void TG02GoldenCopyA () {
  473. List<int> pins = new List<int>();
  474. pins.Add(10);
  475. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  476.  
  477. pins.Add(7);
  478. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  479. pins.Add(3);
  480. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  481.  
  482. pins.Add(9);
  483. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  484. pins.Add(0);
  485. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  486.  
  487. pins.Add(10);
  488. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  489.  
  490. pins.Add(0);
  491. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  492. pins.Add(8);
  493. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  494.  
  495. pins.Add(8);
  496. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  497. pins.Add(2);
  498. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  499.  
  500. pins.Add(0);
  501. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  502. pins.Add(6);
  503. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  504.  
  505. pins.Add(10);
  506. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  507.  
  508. pins.Add(10);
  509. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  510.  
  511. pins.Add(10);
  512. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  513. pins.Add(8);
  514. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  515. pins.Add(1);
  516. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  517. }
  518.  
  519. //http://guttertoglory.com/wp-content/uploads/2011/11/score-2011_11_28.png
  520. [Category ("Verification")]
  521. [Test]
  522. public void TG03GoldenCopyB1of3 () {
  523. List<int> pins = new List<int>();
  524. pins.Add(10);
  525. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  526.  
  527. pins.Add(9);
  528. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  529. pins.Add(1);
  530. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  531.  
  532. pins.Add(9);
  533. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  534. pins.Add(1);
  535. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  536.  
  537. pins.Add(9);
  538. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  539. pins.Add(1);
  540. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  541.  
  542. pins.Add(9);
  543. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  544. pins.Add(1);
  545. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  546.  
  547. pins.Add(7);
  548. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  549. pins.Add(0);
  550. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  551.  
  552. pins.Add(9);
  553. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  554. pins.Add(0);
  555. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  556.  
  557. pins.Add(10);
  558. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  559.  
  560. pins.Add(8);
  561. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  562. pins.Add(2);
  563. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  564.  
  565. pins.Add(8);
  566. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  567. pins.Add(2);
  568. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  569. pins.Add(10);
  570. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  571. }
  572.  
  573. //http://guttertoglory.com/wp-content/uploads/2011/11/score-2011_11_28.png
  574. [Category ("Verification")]
  575. [Test]
  576. public void TG03GoldenCopyB2of3 () {
  577. List<int> pins = new List<int>();
  578. pins.Add(8);
  579. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  580. pins.Add(2);
  581. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  582.  
  583. pins.Add(8);
  584. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  585. pins.Add(1);
  586. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  587.  
  588. pins.Add(9);
  589. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  590. pins.Add(1);
  591. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  592.  
  593. pins.Add(7);
  594. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  595. pins.Add(1);
  596. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  597.  
  598. pins.Add(8);
  599. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  600. pins.Add(2);
  601. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  602.  
  603. pins.Add(9);
  604. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  605. pins.Add(1);
  606. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  607.  
  608. pins.Add(9);
  609. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  610. pins.Add(1);
  611. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  612.  
  613. pins.Add(10);
  614. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  615.  
  616. pins.Add(10);
  617. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  618.  
  619. pins.Add(7);
  620. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  621. pins.Add(1);
  622. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  623. }
  624.  
  625. //http://guttertoglory.com/wp-content/uploads/2011/11/score-2011_11_28.png
  626. [Category ("Verification")]
  627. [Test]
  628. public void TG03GoldenCopyB3of3 () {
  629. List<int> pins = new List<int>();
  630. pins.Add(10);
  631. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  632.  
  633. pins.Add(10);
  634. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  635.  
  636. pins.Add(9);
  637. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  638. pins.Add(0);
  639. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  640.  
  641. pins.Add(10);
  642. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  643.  
  644. pins.Add(7);
  645. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  646. pins.Add(3);
  647. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  648.  
  649. pins.Add(10);
  650. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  651.  
  652. pins.Add(8);
  653. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  654. pins.Add(1);
  655. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  656.  
  657. pins.Add(6);
  658. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  659. pins.Add(3);
  660. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  661.  
  662. pins.Add(6);
  663. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  664. pins.Add(2);
  665. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  666.  
  667. pins.Add(9);
  668. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  669. pins.Add(1);
  670. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  671. pins.Add(10);
  672. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  673. }
  674.  
  675. // http://brownswick.com/wp-content/uploads/2012/06/OpenBowlingScores-6-12-12.jpg
  676. [Category ("Verification")]
  677. [Test]
  678. public void TG03GoldenCopyC1of3 () {
  679. List<int> pins = new List<int>();
  680. pins.Add(7);
  681. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  682. pins.Add(2);
  683. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  684.  
  685. pins.Add(10);
  686. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  687.  
  688. pins.Add(10);
  689. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  690.  
  691. pins.Add(10);
  692. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  693.  
  694. pins.Add(10);
  695. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  696.  
  697. pins.Add(7);
  698. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  699. pins.Add(3);
  700. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  701.  
  702. pins.Add(10);
  703. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  704.  
  705. pins.Add(10);
  706. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  707.  
  708. pins.Add(9);
  709. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  710. pins.Add(1);
  711. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  712.  
  713. pins.Add(10);
  714. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  715. pins.Add(10);
  716. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  717. pins.Add(9);
  718. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  719.  
  720. }
  721.  
  722. // http://brownswick.com/wp-content/uploads/2012/06/OpenBowlingScores-6-12-12.jpg
  723. [Category ("Verification")]
  724. [Test]
  725. public void TG03GoldenCopyC2of3 () {
  726. List<int> pins = new List<int>();
  727. pins.Add(10);
  728. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  729.  
  730. pins.Add(10);
  731. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  732.  
  733. pins.Add(10);
  734. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  735.  
  736. pins.Add(10);
  737. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  738.  
  739. pins.Add(10);
  740. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  741.  
  742. pins.Add(10);
  743. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  744.  
  745. pins.Add(10);
  746. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  747.  
  748. pins.Add(10);
  749. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  750.  
  751. pins.Add(10);
  752. Assert.AreEqual(endTurn, ActionMaster.TurnAction(pins));
  753.  
  754. pins.Add(10);
  755. Assert.AreEqual(reset, ActionMaster.TurnAction(pins));
  756. pins.Add(9);
  757. Assert.AreEqual(liftAndSwipe, ActionMaster.TurnAction(pins));
  758. pins.Add(1);
  759. Assert.AreEqual(endGame, ActionMaster.TurnAction(pins));
  760. }
  761. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement