### Question:
Player { public int getNumberOfDeckCardsWithManaCost(int manaCost) { return (int) deck.stream().filter(card -> card.getValue() == manaCost).count(); } Player(String name, Strategy strategy);   Player(String name, Strategy strategy, int health, int manaSlots, int mana, List<Card> deck, List<Card> hand); int getHealth(); int getMana(); int getNumberOfDeckCardsWithManaCost(int manaCost); int getNumberOfDeckCards(); Integer getNumberOfHandCardsWithManaCost(int manaCost); int getNumberOfHandCards(); void drawCard(); int getManaSlots(); void giveManaSlot(); void refillMana(); void drawStartingHand(); boolean canPlayCards(); void playCard(Player opponent); @Override String toString();  }### Answer:
@Test public void cardDeckShouldContainInitialCards() { assertThat(player.getNumberOfDeckCardsWithManaCost(0), is(equalTo(2))); assertThat(player.getNumberOfDeckCardsWithManaCost(1), is(equalTo(2))); assertThat(player.getNumberOfDeckCardsWithManaCost(2), is(equalTo(3))); assertThat(player.getNumberOfDeckCardsWithManaCost(3), is(equalTo(4))); assertThat(player.getNumberOfDeckCardsWithManaCost(4), is(equalTo(3))); assertThat(player.getNumberOfDeckCardsWithManaCost(5), is(equalTo(2))); assertThat(player.getNumberOfDeckCardsWithManaCost(6), is(equalTo(2))); assertThat(player.getNumberOfDeckCardsWithManaCost(7), is(equalTo(1))); assertThat(player.getNumberOfDeckCardsWithManaCost(8), is(equalTo(1))); }