static int runTestCase(int casenum) {
		switch (casenum) {
		case 0: {
			int[] start = { 0, 2 };
			int expected__ = 1;

			return verifyCase(casenum, expected__, new PairingPawns().savedPawnCount(start));
		}
		case 1: {
			int[] start = { 10, 3 };
			int expected__ = 11;

			return verifyCase(casenum, expected__, new PairingPawns().savedPawnCount(start));
		}
		case 2: {
			int[] start = { 0, 0, 0, 8 };
			int expected__ = 1;

			return verifyCase(casenum, expected__, new PairingPawns().savedPawnCount(start));
		}
		case 3: {
			int[] start = { 0, 1, 1, 2 };
			int expected__ = 1;

			return verifyCase(casenum, expected__, new PairingPawns().savedPawnCount(start));
		}
		case 4: {
			int[] start = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123456 };
			int expected__ = 0;

			return verifyCase(casenum, expected__, new PairingPawns().savedPawnCount(start));
		}
		case 5: {
			int[] start = { 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 };
			int expected__ = 3921;

			return verifyCase(casenum, expected__, new PairingPawns().savedPawnCount(start));
		}

		// custom cases

		/*
		 * case 6: {
		 * int[] start = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum, expected__, new
		 * PairingPawns().savedPawnCount(start));
		 * }
		 */
		/*
		 * case 7: {
		 * int[] start = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum, expected__, new
		 * PairingPawns().savedPawnCount(start));
		 * }
		 */
		/*
		 * case 8: {
		 * int[] start = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum, expected__, new
		 * PairingPawns().savedPawnCount(start));
		 * }
		 */
		default:
			return -1;
		}
	}