### Question:
CardList implements Iterable<Card> { public final static CardList getPerfectGrandSuitHand() { return new CardList(Card.CJ, Card.SJ, Card.HJ, Card.DJ, Card.CA, Card.SA, Card.HA, Card.DA, Card.CT, Card.ST); } CardList();  CardList(final List<Card> newCards);  CardList(final CardList newCards);  CardList(Card... cards); CardList getImmutableCopy(); boolean remove(final Card card); boolean add(final Card card); boolean addAll(final CardList newCards); boolean addAll(final Collection<Card> newCards); int size(); boolean isEmpty(); @Override Iterator<Card> iterator(); boolean contains(final Card card); Card remove(final int index); boolean removeAll(final Collection<Card> cardsToRemove); boolean removeAll(final CardList cardsToRemove); void clear(); int indexOf(final Card card); boolean hasSuit(final GameType gameType, final Suit suit); boolean hasTrump(final GameType gameType); boolean hasJack(final Suit suit); void set(final int index, final Card card); Card get(final int index); int getIndexOf(final Card card); Suit getMostFrequentSuit(); Suit getMostFrequentSuit(final Suit exclude); int getSuitCount(final Suit suit, final boolean countJack); int getTrumpCount(final Suit trumpSuit); void sort(final GameType gameType); @Override String toString(); int getFirstIndexOfSuit(final Suit suit,
			final boolean includeJacks); int getFirstIndexOfSuit(final Suit suit); int getLastIndexOfSuit(final Suit suit); int getLastIndexOfSuit(final Suit suit, final boolean includeJacks); int getTotalValue(); int[] toBinary(); String dumpFlag(); @Override int hashCode(); @Override boolean equals(Object obj); final static CardList getPerfectGrandSuitHand(); final static CardList getRandomCards(int cardCount);  }### Answer:
@Test public void testPerfectGrandSuitHand() { final CardList cards = CardList.getPerfectGrandSuitHand(); assertThat(cards).containsExactlyInAnyOrder( Card.CJ, Card.SJ, Card.HJ, Card.DJ, Card.CA, Card.SA, Card.HA, Card.DA, Card.CT, Card.ST); }