public final void testBoundaryPlacement() {

		int gridSize = q8cb.getSize();

		// Bottom left hand corner.
		q8cb.clearTheBoard();
		assertTrue(q8cb.placePiece(0, 0));
		assertTrue(q8cb.getBoard()[0][0] == PositionStatus.OCCUPIED);

		for (int j = 1; j < gridSize; j++) {
			assertTrue(q8cb.getBoard()[0][j] == PositionStatus.UNSAFE);
		}

		for (int i = 1; i < gridSize; i++) {
			assertTrue(q8cb.getBoard()[i][0] == PositionStatus.UNSAFE);
		}

		for (int i = 1, j = 1; (i < gridSize) && (j < gridSize); i++, j++) {
			assertTrue(q8cb.getBoard()[i][j] == PositionStatus.UNSAFE);
		}

		// Top Right Hand Corner
		q8cb.clearTheBoard();
		assertTrue(q8cb.placePiece(gridSize - 1, gridSize - 1));
		assertTrue(q8cb.getBoard()[gridSize - 1][gridSize - 1] == PositionStatus.OCCUPIED);

		for (int j = gridSize - 2; j > 0; j--) {
			assertTrue(q8cb.getBoard()[gridSize - 1][j] == PositionStatus.UNSAFE);
		}

		for (int i = 0; i < gridSize - 2; i++) {
			assertTrue(q8cb.getBoard()[i][gridSize - 1] == PositionStatus.UNSAFE);
		}

		for (int i = gridSize - 2, j = gridSize - 2; (i >= 0) && (j >= 0); i--, j--){
			assertTrue(q8cb.getBoard()[i][j] == PositionStatus.UNSAFE);
		}

		// TODO: Check that for correct setting of unsafe markers
		q8cb.clearTheBoard();
		assertTrue(q8cb.placePiece(0, q8cb.getGridSize() - 1));
		assertTrue(q8cb.getBoard()[0][q8cb.getGridSize() - 1] == PositionStatus.OCCUPIED);

		q8cb.clearTheBoard();
		assertTrue(q8cb.placePiece(q8cb.getGridSize() - 1, 0));
		assertTrue(q8cb.getBoard()[q8cb.getGridSize() - 1][0] == PositionStatus.OCCUPIED);
	}