package jrummikub.model;

import static org.junit.Assert.*;

import java.util.Arrays;

import org.junit.Test;

/**	*/
public class GameStateTest {
	GameState gameState = new GameState();

	/**	*/
	@Test
	public void testAccumulatedScore() {
		Score score1 = new Score(Arrays.asList(true, false, false), Arrays.asList(
				30, -20, -10));
		Score score2 = new Score(Arrays.asList(true, true, false), Arrays.asList(
				-10, -10, -50));
		Score score3 = new Score(Arrays.asList(false, false, true), Arrays.asList(
				-30, -20, 50));
		Score score4 = new Score(Arrays.asList(false, true, false), Arrays.asList(
				-20, -10, -30));

		gameState.getScores().addAll(Arrays.asList(score1, score2, score3, score4));

		Score accum = gameState.getAccumulatedScore();
		assertEquals(Arrays.asList(true, false, false), accum.getWinners());
		assertEquals(Arrays.asList(-30, -60, -40), accum.getPoints());
	}

	/**	*/
	@Test
	public void testAccumulatedScoreDraw() {
		Score score1 = new Score(Arrays.asList(true, false, false), Arrays.asList(
				10, -10, -5));
		Score score2 = new Score(Arrays.asList(true, true, false), Arrays.asList(
				-10, -10, -50));
		Score score3 = new Score(Arrays.asList(false, false, true), Arrays.asList(
				-20, -10, 30));
		Score score4 = new Score(Arrays.asList(false, true, false), Arrays.asList(
				-20, -10, -30));

		gameState.getScores().addAll(Arrays.asList(score1, score2, score3, score4));

		Score accum = gameState.getAccumulatedScore();
		assertEquals(Arrays.asList(true, true, false), accum.getWinners());
		assertEquals(Arrays.asList(-40, -40, -55), accum.getPoints());
	}
}
