@Test
	public void testReRoll() {
		track.rollDice(dice);
		int food = track.getFood(), coin = track.getCoin(), workers = track
				.getWorkers(), skulls = track.getSkulls(), goods = track
				.getGoods();
		assertFalse(track.reroll(new ArrayList<Integer>(), dice));
		assertEquals(food, track.getFood());
		assertEquals(coin, track.getCoin());
		assertEquals(workers, track.getWorkers());
		assertEquals(skulls, track.getSkulls());
		assertEquals(goods, track.getGoods());

		ArrayList<Integer> ints = new ArrayList<Integer>();
		int ranNum = (int) (Math.random() * 6);
		ints.add(ranNum);
		// will give infinite loop if all dice are skulls
		while (track.rerollContainsSkulls(ints, dice)) {
			ints.clear();
			ranNum = (int) (Math.random() * 6);
			ints.add(ranNum);
		}
		assertTrue(track.reroll(ints, dice));

		// will give infinite loop if all dice are skulls
		while (track.rerollContainsSkulls(ints, dice)) {
			ints.clear();
			ranNum = (int) (Math.random() * 6);
			ints.add(ranNum);
		}
		assertTrue(track.reroll(ints, dice));

		assertFalse(track.reroll(ints, dice));

		//this test makes sure reroll changes the dice
		boolean flag = false;
		for (int i=0; i<10; i++) {
			track.rollDice(dice);
			
			food = track.getFood();
			coin = track.getCoin();
			workers = track.getWorkers();
			skulls = track.getSkulls();
			goods = track.getGoods();
			
			do {
				ints.clear();
				ranNum = (int) (Math.random() * 6);
				ints.add(ranNum);
			} while (track.rerollContainsSkulls(ints, dice));
			
			assertTrue(track.reroll(ints, dice));
			
			if (!(food == track.getFood() && coin == track.getCoin()
					&& workers == track.getWorkers() && skulls == track.getSkulls()
					&& goods == track.getGoods()))
				flag = true;
		}
		assertTrue(flag);
	}