} // To proper test this should be injected too public Simulator(int numberOfPlayers, IWinnerDecider winnerDecider, ISnapDecider snapDecider) { if (numberOfPlayers < 2 || numberOfPlayers > 52) { throw new ArgumentOutOfRangeException(nameof(numberOfPlayers), $"The simulator expects a number of players between 2 and 52, {numberOfPlayers} was given instead."); } _numberOfPlayers = numberOfPlayers; _winnerDecider = winnerDecider; _snapDecider = snapDecider; CentralPile = new CardSet(); PlayersById = new Dictionary <int, Player>(); for (int playerIndex = 0; playerIndex < _numberOfPlayers; playerIndex++) { var player = new Player(); PlayersById.Add(player.Id, player); } CardDeck = new CardSet(); CardDeck.InitializeWithFullDeck(); CardDeck.Shuffle(); _numberOfCardsUsedInGame = Utils.Utils.GetNumberOfCardsToUseInGame(_numberOfPlayers); }
public void When_InitializeWithFullDeck_TheCardDeckHas52UniqueCards() { var cardDeck = new CardSet(); cardDeck.InitializeWithFullDeck(); var cards = cardDeck.Cards.Select(c => c.ToString()).Distinct(); Assert.Equal(52, cards.Count()); }
public void When_Shuffled_KeepsTheUniqueCardCount() { var cardDeck = new CardSet(); cardDeck.InitializeWithFullDeck(); cardDeck.Shuffle(); var cards = cardDeck.Cards.Select(c => c.ToString()).Distinct(); Assert.Equal(52, cards.Count()); }