/** * Copyright (C) 2017 Jan Schäfer (jansch@users.sourceforge.net) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jskat.util; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import java.util.Random; import org.jskat.AbstractJSkatTest; import org.junit.Test; /** * Test cases for class Card */ public class CardListTest extends AbstractJSkatTest { private static final Random RANDOM = new Random(); /** * Test double sorting */ @Test public void testSort001() { CardList cards = new CardList(); cards.add(Card.CA); cards.add(Card.HA); cards.add(Card.DA); cards.add(Card.HT); cards.add(Card.CJ); cards.add(Card.D7); // sort cards cards.sort(GameType.DIAMONDS); // check order assertTrue(cards.get(0) == Card.CJ); assertTrue(cards.get(1) == Card.DA); assertTrue(cards.get(2) == Card.D7); assertTrue(cards.get(3) == Card.CA); assertTrue(cards.get(4) == Card.HA); assertTrue(cards.get(5) == Card.HT); // sort cards again cards.sort(GameType.DIAMONDS); // check order assertTrue(cards.get(0) == Card.CJ); assertTrue(cards.get(1) == Card.DA); assertTrue(cards.get(2) == Card.D7); assertTrue(cards.get(3) == Card.CA); assertTrue(cards.get(4) == Card.HA); assertTrue(cards.get(5) == Card.HT); } /** * Test card finding */ @Test public void testGetFirstIndexOfSuit() { CardList cards = new CardList(); cards.add(Card.CJ); cards.add(Card.CA); assertEquals(0, cards.getFirstIndexOfSuit(Suit.CLUBS)); assertEquals(0, cards.getFirstIndexOfSuit(Suit.CLUBS, true)); assertEquals(1, cards.getFirstIndexOfSuit(Suit.CLUBS, false)); assertEquals(-1, cards.getFirstIndexOfSuit(Suit.HEARTS)); } /** * Test card finding */ @Test public void testGetLastIndexOfSuit() { CardList cards = new CardList(); cards.add(Card.CA); cards.add(Card.CJ); assertEquals(1, cards.getLastIndexOfSuit(Suit.CLUBS)); assertEquals(1, cards.getLastIndexOfSuit(Suit.CLUBS, true)); assertEquals(0, cards.getLastIndexOfSuit(Suit.CLUBS, false)); assertEquals(-1, cards.getLastIndexOfSuit(Suit.HEARTS)); } @Test public void testPerfectGrandSuitHand() { CardList cards = CardList.getPerfectGrandSuitHand(); assertThat(cards.size(), is(10)); assertTrue(cards.contains(Card.CJ)); assertTrue(cards.contains(Card.SJ)); assertTrue(cards.contains(Card.HJ)); assertTrue(cards.contains(Card.DJ)); assertTrue(cards.contains(Card.CA)); assertTrue(cards.contains(Card.SA)); assertTrue(cards.contains(Card.HA)); assertTrue(cards.contains(Card.DA)); assertTrue(cards.contains(Card.CT)); assertTrue(cards.contains(Card.ST)); } @Test public void testRandomCards() { CardList cards = CardList.getRandomCards(10); assertThat(cards.size(), is(10)); } }