public void TradeCards_ValidCards_TradedCards() { var playerAHand = new List <Card> { new Card(Suit.Spades, 1), new Card(Suit.Spades, 2), new Card(Suit.Spades, 3), new Card(Suit.Spades, 4) }; var tradeCards = new List <Card> { new Card(Suit.Spades, 3), new Card(Suit.Spades, 4) }; var playerBHand = new List <Card> { new Card(Suit.Hearts, 1), new Card(Suit.Hearts, 2), new Card(Suit.Hearts, 3), new Card(Suit.Hearts, 4) }; DaifugoFunction.TradeCards(playerAHand, tradeCards, playerBHand); playerAHand.Sort(DaifugoFunction.SortRankOrderComparison); playerBHand.Sort(DaifugoFunction.SortRankOrderComparison); var expectedA = new List <Card> { new Card(Suit.Spades, 1), new Card(Suit.Spades, 2), new Card(Suit.Hearts, 1), new Card(Suit.Hearts, 2) }; expectedA.Sort(DaifugoFunction.SortRankOrderComparison); Assert.True(expectedA.SequenceEqual(playerAHand)); var expectedB = new List <Card> { new Card(Suit.Spades, 3), new Card(Suit.Spades, 4), new Card(Suit.Hearts, 3), new Card(Suit.Hearts, 4) }; expectedB.Sort(DaifugoFunction.SortRankOrderComparison); Assert.True(expectedB.SequenceEqual(playerBHand)); }
public void ArePlayedCardsValid_PlayedCards_ReturnTrueIfCardsAreValid(List <Card> playedCards, List <Card> fieldCards, bool expected) { var playerHand = new List <Card> { new Card(Suit.Spades, 12), new Card(Suit.Spades, 13), new Card(Suit.Hearts, 13), new Card(Suit.Spades, 1), new Card(Suit.Spades, 2), new Card(Suit.Joker, Card.JokerNumber) }; var actual = DaifugoFunction.ArePlayedCardsValid(playedCards, playerHand, fieldCards); Assert.Equal(expected, actual); }
public void TradeCards_InvalidCards_ReturnFalse() { var playerAHand = new List <Card> { new Card(Suit.Spades, 1), new Card(Suit.Spades, 2), new Card(Suit.Spades, 3), new Card(Suit.Spades, 4) }; var tradeCards = new List <Card> { new Card(Suit.Spades, 1), new Card(Suit.Clubs, 2) }; var playerBHand = new List <Card> { new Card(Suit.Hearts, 1), new Card(Suit.Hearts, 2), new Card(Suit.Hearts, 3), new Card(Suit.Hearts, 4) }; var result = DaifugoFunction.TradeCards(playerAHand, tradeCards, playerBHand); Assert.False(result); }
public void AssignPlayersToSeats_PlayersAndSeats_SeatIdIsAssigned() { var players = new List <PrivateStatus> { new PrivateStatus() { id = 0 }, new PrivateStatus() { id = 1 }, new PrivateStatus() { id = 2 }, new PrivateStatus() { id = 3 }, new PrivateStatus() { id = 4 }, }; var seats = new List <Seat> { new Seat(), new Seat(), new Seat(), new Seat(), new Seat(), }; DaifugoFunction.AssignPlayersToSeats(players, seats); foreach (var player in players) { var assigned = seats[player.seat].playerId; Assert.Equal(player.id, assigned); } }
public void DealCardsToPlayers_5Players_ValidHands() { var deck = new Deck(); var players = new List <PrivateStatus> { new PrivateStatus() { id = 0, seat = 0, roleRank = RoleRank.Heimin }, new PrivateStatus() { id = 1, seat = 1, roleRank = RoleRank.Heimin }, new PrivateStatus() { id = 2, seat = 2, roleRank = RoleRank.Heimin }, new PrivateStatus() { id = 3, seat = 3, roleRank = RoleRank.Heimin }, new PrivateStatus() { id = 4, seat = 4, roleRank = RoleRank.Heimin }, }; DaifugoFunction.DealCardsToPlayers(deck, players); var cards = new List <Card>(); foreach (var player in players) { foreach (var card in player.hand) { var exists = cards.Exists(c => c == card); Assert.False(exists); cards.Add(card); } } }
public void DealCardsToPlayers_5Players_HandCountIs11or10() { var deck = new Deck(); var players = new List <PrivateStatus> { new PrivateStatus() { id = 0, seat = 0, roleRank = RoleRank.Heimin }, new PrivateStatus() { id = 1, seat = 1, roleRank = RoleRank.Heimin }, new PrivateStatus() { id = 2, seat = 2, roleRank = RoleRank.Heimin }, new PrivateStatus() { id = 3, seat = 3, roleRank = RoleRank.Heimin }, new PrivateStatus() { id = 4, seat = 4, roleRank = RoleRank.Heimin }, }; DaifugoFunction.DealCardsToPlayers(deck, players); var handCount0 = players[0].hand.Count; var handCount1 = players[1].hand.Count; var handCount2 = players[2].hand.Count; var handCount3 = players[3].hand.Count; var handCount4 = players[4].hand.Count; var result = handCount0 == 11 && handCount1 == 11 && handCount2 == 11 && handCount3 == 10 && handCount4 == 10; Assert.True(result); }
public void NumberToRank_Number_Rank(int number, int rank) { var actual = DaifugoFunction.NumberToRank(number); Assert.Equal(rank, actual); }