public void TestCalculateBonusShortHighCard() { // assign var data = InputReader.ReadInput("2d 7h Ac"); var result = new byte[3]; // act var objectUnderTest = new LastTurnInPosition(); LineValue power = objectUnderTest.SortLine(data, result, 0, 3); decimal score = objectUnderTest.CalculateBonusShort(result, power); // assert Assert.AreEqual(0, score); }
public void TestSortLineShortHighCard() { // assign var data = InputReader.ReadInput("Jd Qh Ac"); var result = new byte[3]; // act var objectUnderTest = new LastTurnInPosition(); LineValue power = objectUnderTest.SortLine(data, result, 0, 3); // assert Assert.AreEqual(LineValue.HighCard, power); Assert.AreEqual(13, result[0]); Assert.AreEqual(11, result[1]); Assert.AreEqual(10, result[2]); }
public void TestCompareOneAnotherEqualLen() { // assign var oneHand = InputReader.ReadInput("Ah Qh Jh 5d 4d"); var otherHand = InputReader.ReadInput("Ac Jc Qc 5s 4c"); var oneSorted = new byte[5]; var otherSorted = new byte[5]; var objectUnderTest = new LastTurnInPosition(); LineValue onePower = objectUnderTest.SortLine(oneHand, oneSorted, 0, 5); LineValue otherPower = objectUnderTest.SortLine(otherHand, otherSorted, 0, 5); // act int result = objectUnderTest.CompareOneOther(oneSorted, otherSorted, onePower, otherPower); // assert Assert.IsTrue(result == 0); }
public void TestSortLineFlash() { // assign var data = InputReader.ReadInput("2s 3h Qd 2d Jd Kd Ad 3s"); var result = new byte[5]; // act var objectUnderTest = new LastTurnInPosition(); LineValue power = objectUnderTest.SortLine(data, result, 2, 5); // assert Assert.AreEqual(LineValue.Flash, power); Assert.AreEqual(13, result[0]); Assert.AreEqual(12, result[1]); Assert.AreEqual(11, result[2]); Assert.AreEqual(10, result[3]); Assert.AreEqual(1, result[4]); }
public void TestAgainstEmptyWithFantazy() { // assign var heroHand = InputReader.ReadInput("Qh 9s ? Ts Qs As 6s ? Jh Js Jd Kh Ks"); var villainHand = InputReader.ReadInput("2h 3s 4d 2s 3h 4c 5c 7d 2d 3d 4s 5d 8s"); var triple = InputReader.ReadInput("Qs Tc Td"); int outFirstIdx; int outSecondIdx; // act var objectUnderTest = new LastTurnInPosition(); var score = objectUnderTest.Work(villainHand, heroHand, triple, out outFirstIdx, out outSecondIdx); // assert Assert.AreEqual(21.5M, score); Assert.AreEqual(0, outFirstIdx); }
public void TestCompareOneAnotherVariousPower() { // assign var oneHand = InputReader.ReadInput("Qh Qd Jd 2c Js"); var otherHand = InputReader.ReadInput("4c 8h 5s 6c 7d"); var oneSorted = new byte[5]; var otherSorted = new byte[5]; var objectUnderTest = new LastTurnInPosition(); LineValue onePower = objectUnderTest.SortLine(oneHand, oneSorted, 0, 5); LineValue otherPower = objectUnderTest.SortLine(otherHand, otherSorted, 0, 5); // act int result = objectUnderTest.CompareOneOther(oneSorted, otherSorted, onePower, otherPower); // assert Assert.IsTrue(result < 0); }
public void TestBonusAgainstThreeLineWin2() { // assign var heroHand = InputReader.ReadInput("Qh 9s 6h Ts Qs As 6s ? Jh Jc Jd Kh ?"); var villainHand = InputReader.ReadInput("2h 3s 4s 2s 3h 4c 5c 7d 2d 3d 4d 5d 8d"); var triple = InputReader.ReadInput("Ks Tc Td"); int outFirstIdx; int outSecondIdx; // act var objectUnderTest = new LastTurnInPosition(); var score = objectUnderTest.Work(villainHand, heroHand, triple, out outFirstIdx, out outSecondIdx); // assert Assert.AreEqual(12M, score); Assert.AreEqual(0, outSecondIdx); }
public void TestAgainstEmptyToStayAlive() { // assign var heroHand = InputReader.ReadInput("9h 9s ? Th Ts Kd 6s ? Jh Js Jd Qh Qs"); var villainHand = InputReader.ReadInput("2h 3s 4d 2s 3h 4c 5c 7d 2d 3d 4s 5d 8s"); var triple = InputReader.ReadInput("9d 6d Ad"); int outFirstIdx; int outSecondIdx; // act var objectUnderTest = new LastTurnInPosition(); var score = objectUnderTest.Work(villainHand, heroHand, triple, out outFirstIdx, out outSecondIdx); // assert Assert.AreEqual(16M, score); Assert.AreNotEqual(0, outFirstIdx); }
public void TestBonusAgainstOneLineWin() { // assign var heroHand = InputReader.ReadInput("2h 4d ? Jh 8d Td Qs Ks 4h 5h 6h 7h ?"); var villainHand = InputReader.ReadInput("2h 3s Jd Qd Qc 4c 5c 7d 3h 3d 3c 5d 5s"); var triple = InputReader.ReadInput("Ah 6c 7c"); int outFirstIdx; int outSecondIdx; // act var objectUnderTest = new LastTurnInPosition(); var score = objectUnderTest.Work(villainHand, heroHand, triple, out outFirstIdx, out outSecondIdx); // assert Assert.AreEqual(-7, score); Assert.AreEqual(0, outFirstIdx); }
public void TestSortLineHighCard() { // assign var data = InputReader.ReadInput("5h 6d Ks Ac 3d"); var result = new byte[5]; // act var objectUnderTest = new LastTurnInPosition(); LineValue power = objectUnderTest.SortLine(data, result, 0, 5); // assert Assert.AreEqual(LineValue.HighCard, power); Assert.AreEqual(13, result[0]); Assert.AreEqual(12, result[1]); Assert.AreEqual(5, result[2]); Assert.AreEqual(4, result[3]); Assert.AreEqual(2, result[4]); }
public void TestSortLineSet() { // assign var data = InputReader.ReadInput("5h 6d 2s 2d Ac 2c 3s"); var result = new byte[5]; // act var objectUnderTest = new LastTurnInPosition(); LineValue power = objectUnderTest.SortLine(data, result, 2, 5); // assert Assert.AreEqual(LineValue.Set, power); Assert.AreEqual(1, result[0]); Assert.AreEqual(1, result[1]); Assert.AreEqual(1, result[2]); Assert.AreEqual(13, result[3]); Assert.AreEqual(2, result[4]); }
public void TestSortLineStraight() { // assign var data = InputReader.ReadInput("5h 6d 4s 3d 2c As 3s"); var result = new byte[5]; // act var objectUnderTest = new LastTurnInPosition(); LineValue power = objectUnderTest.SortLine(data, result, 0, 5); // assert Assert.AreEqual(LineValue.Straight, power); Assert.AreEqual(5, result[0]); Assert.AreEqual(4, result[1]); Assert.AreEqual(3, result[2]); Assert.AreEqual(2, result[3]); Assert.AreEqual(1, result[4]); }
public void TestCompareOneAnotherOnPower() { // assign var oneHand = InputReader.ReadInput("Ah Ad Ac 3h 4d"); var otherHand = InputReader.ReadInput("7s 5c 5s 5d 5h"); var oneSorted = new byte[5]; var otherSorted = new byte[5]; var objectUnderTest = new LastTurnInPosition(); LineValue onePower = objectUnderTest.SortLine(oneHand, oneSorted, 0, 5); LineValue otherPower = objectUnderTest.SortLine(otherHand, otherSorted, 0, 5); // act int result = objectUnderTest.CompareOneOther(oneSorted, otherSorted, onePower, otherPower); // assert Assert.IsTrue(result < 0); }
public void TestSortLineStraightFlush() { // assign var data = InputReader.ReadInput("2s 2d 3d 4d 5d Ad 3s"); var result = new byte[5]; // act var objectUnderTest = new LastTurnInPosition(); LineValue power = objectUnderTest.SortLine(data, result, 1, 5); // assert Assert.AreEqual(LineValue.StraightFlash, power); Assert.AreEqual(4, result[0]); Assert.AreEqual(3, result[1]); Assert.AreEqual(2, result[2]); Assert.AreEqual(1, result[3]); Assert.AreEqual(13, result[4]); }
public void TestAgainstDead() { // assign var heroHand = InputReader.ReadInput("Ah Ad 6h Ts Qs As 6s ? Jh Jc Jd Kh ?"); var villainHand = InputReader.ReadInput("Ks Kc 4d Qd Qc 4c 5c 7d 3h 3d 3c 5d 8s"); var triple = InputReader.ReadInput("Js Ac Td"); int outFirstIdx; int outSecondIdx; // act var objectUnderTest = new LastTurnInPosition(); var score = objectUnderTest.Work(villainHand, heroHand, triple, out outFirstIdx, out outSecondIdx); // assert Assert.AreEqual(16M, score); Assert.AreEqual(1, outFirstIdx); Assert.AreEqual(0, outSecondIdx); }
public void TestIsHandDeadWhenAliveVariousCombo() { // assign var shortHand = InputReader.ReadInput("Qh Qd Jd"); var shortSorted = new byte[3]; var middleHand = InputReader.ReadInput("Ah Kd Qs Jd Tc"); var middleSorted = new byte[5]; var topHand = InputReader.ReadInput("6d 6c 6s 2s 2c"); var topSorted = new byte[5]; var objectUnderTest = new LastTurnInPosition(); LineValue shortPower = objectUnderTest.SortLine(shortHand, shortSorted, 0, 3); LineValue middlePower = objectUnderTest.SortLine(middleHand, middleSorted, 0, 5); LineValue topPower = objectUnderTest.SortLine(topHand, topSorted, 0, 5); // act var isDead = objectUnderTest.IsHandDead(shortSorted, middleSorted, topSorted, shortPower, middlePower, topPower); // assert Assert.IsFalse(isDead); }
public void TestIsHandDeadWhenLiveByEqual() { // assign var shortHand = InputReader.ReadInput("Qh Jd Ts"); var shortSorted = new byte[3]; var middleHand = InputReader.ReadInput("Qs Jc Td 4c 3s"); var middleSorted = new byte[5]; var topHand = InputReader.ReadInput("Qd Js Th 4s 3c"); var topSorted = new byte[5]; var objectUnderTest = new LastTurnInPosition(); LineValue shortPower = objectUnderTest.SortLine(shortHand, shortSorted, 0, 3); LineValue middlePower = objectUnderTest.SortLine(middleHand, middleSorted, 0, 5); LineValue topPower = objectUnderTest.SortLine(topHand, topSorted, 0, 5); // act var isDead = objectUnderTest.IsHandDead(shortSorted, middleSorted, topSorted, shortPower, middlePower, topPower); // assert Assert.IsFalse(isDead); }
public void TestIsHandDeadWhenDeadByHighCardKicker() { // assign var shortHand = InputReader.ReadInput("Qh Ad Jd"); var shortSorted = new byte[3]; var middleHand = InputReader.ReadInput("Qs 7c Jd Tc 9s"); var middleSorted = new byte[5]; var topHand = InputReader.ReadInput("Kd Kc 6s 2s 3c"); var topSorted = new byte[5]; var objectUnderTest = new LastTurnInPosition(); LineValue shortPower = objectUnderTest.SortLine(shortHand, shortSorted, 0, 3); LineValue middlePower = objectUnderTest.SortLine(middleHand, middleSorted, 0, 5); LineValue topPower = objectUnderTest.SortLine(topHand, topSorted, 0, 5); // act var isDead = objectUnderTest.IsHandDead(shortSorted, middleSorted, topSorted, shortPower, middlePower, topPower); // assert Assert.IsTrue(isDead); }
public void TestScoreCompareAliveVsDead() { // assign var heroShortHand = InputReader.ReadInput("Qh Jd Ts"); var heroShortSorted = new byte[3]; var heroMiddleHand = InputReader.ReadInput("Ac 2s As 2d 3h"); var heroMiddleSorted = new byte[5]; var heroTopHand = InputReader.ReadInput("Th 9d 9c Tc Ts"); var heroTopSorted = new byte[5]; var villainShortHand = InputReader.ReadInput("8d 8s 2c"); var villainShortSorted = new byte[3]; var villainMiddleHand = InputReader.ReadInput("7d 6c 7s 5c 3h"); var villainMiddleSorted = new byte[5]; var villainTopHand = InputReader.ReadInput("Ad Kd Qd Jd Td"); var villainTopSorted = new byte[5]; var objectUnderTest = new LastTurnInPosition(); LineValue heroShortPower = objectUnderTest.SortLine(heroShortHand, heroShortSorted, 0, 3); LineValue heroMiddlePower = objectUnderTest.SortLine(heroMiddleHand, heroMiddleSorted, 0, 5); LineValue heroTopPower = objectUnderTest.SortLine(heroTopHand, heroTopSorted, 0, 5); LineValue villainShortPower = objectUnderTest.SortLine(villainShortHand, villainShortSorted, 0, 3); LineValue villainMiddlePower = objectUnderTest.SortLine(villainMiddleHand, villainMiddleSorted, 0, 5); LineValue villainTopPower = objectUnderTest.SortLine(villainTopHand, villainTopSorted, 0, 5); var isHeroHandDead = objectUnderTest.IsHandDead(heroShortSorted, heroMiddleSorted, heroTopSorted, heroShortPower, heroMiddlePower, heroTopPower); var isVillainHandDead = objectUnderTest.IsHandDead(villainShortSorted, villainMiddleSorted, villainTopSorted, villainShortPower, villainMiddlePower, villainTopPower); //act var score = objectUnderTest.ScoreCompare(isHeroHandDead, isVillainHandDead, heroShortSorted, heroMiddleSorted, heroTopSorted, heroShortPower, heroMiddlePower, heroTopPower, villainShortSorted, villainMiddleSorted, villainTopSorted, villainShortPower, villainMiddlePower, villainTopPower); // assert Assert.AreEqual(6, score); }