@Test
	public final void testGetMoves() {
		
		g.getMoves().clear();
		
		for (int i = 0; i < 5; i++) {
			g.getMoves().add(ms[i]);
		}
		
		// doppelt adden duerfte nicht gehen:
		for (int i = 0; i < 5; i++) {
			try {
				g.getMoves().add(ms[i]);
				fail("duplicates are allowed");
			} catch (Exception e) { }
		}
		
		// zugriff von hinten
		assertEquals(ms[4], g.getMoves().get(-1));
		assertEquals(ms[3], g.getMoves().get(-2));
		assertEquals(ms[1], g.getMoves().get(-4));
		assertEquals(ms[0], g.getMoves().get(-5));
		try {
			g.getMoves().get(-6);
			fail("no index out of bound exc??");
		} catch (Exception e) { }
		
		
		
		try {
			g.getMoves().set(3, ms[7]);
			fail("set works");
		} catch (Exception e) { }
		
		try {
			g.getMoves().remove(ms[2]);
			fail("rm works");
		} catch (Exception e) { }
		
		try {
			g.getMoves().remove(0);
			fail("rm works");
		} catch (Exception e) { }
				
		try {
			g.getMoves().remove(g.getMoves().size() - 1);
			fail("rm works");
		} catch (Exception e) { }
		
		g.getMoves().remove(GameState.LAST_MOVE);
		g.getMoves().remove(GameState.LAST_MOVE);
		
		assertEquals(3, g.getMoves().size());
		
		assertEquals(0, g.getMoves().indexOf(ms[0]));
		assertEquals(1, g.getMoves().indexOf(ms[1]));
		assertEquals(2, g.getMoves().indexOf(ms[2]));
		
		g.getMoves().clear();
		
		assertEquals(0, g.getMoves().size());
	}