static int runTestCase(int casenum) {
		switch (casenum) {
		case 0: {
			String[] tiles = { "PP", "P." };
			int expected__ = 0;

			return verifyCase(casenum, expected__, new PenguinTiles().minMoves(tiles));
		}
		case 1: {
			String[] tiles = { "PPPPPPPP", ".PPPPPPP" };
			int expected__ = 1;

			return verifyCase(casenum, expected__, new PenguinTiles().minMoves(tiles));
		}
		case 2: {
			String[] tiles = { "PPP", "P.P", "PPP" };
			int expected__ = 2;

			return verifyCase(casenum, expected__, new PenguinTiles().minMoves(tiles));
		}
		case 3: {
			String[] tiles = { "P.", "PP", "PP", "PP" };
			int expected__ = 1;

			return verifyCase(casenum, expected__, new PenguinTiles().minMoves(tiles));
		}
		case 4: {
			String[] tiles = { ".PPP", "PPPP", "PPPP", "PPPP" };
			int expected__ = 2;

			return verifyCase(casenum, expected__, new PenguinTiles().minMoves(tiles));
		}

		// custom cases

		/*
		 * case 5: {
		 * String[] tiles = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum, expected__, new
		 * PenguinTiles().minMoves(tiles));
		 * }
		 */
		/*
		 * case 6: {
		 * String[] tiles = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum, expected__, new
		 * PenguinTiles().minMoves(tiles));
		 * }
		 */
		/*
		 * case 7: {
		 * String[] tiles = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum, expected__, new
		 * PenguinTiles().minMoves(tiles));
		 * }
		 */
		default:
			return -1;
		}
	}