static int runTestCase(int casenum__) {
		switch (casenum__) {
		case 0: {
			int[] partSizes = { 2, 2, 2 };
			int[] boxSizes = { 1, 2, 2, 3 };
			int expected__ = 3;

			return verifyCase(casenum__, expected__,
					new PackingParts().pack(partSizes, boxSizes));
		}
		case 1: {
			int[] partSizes = { 1, 5 };
			int[] boxSizes = { 2, 5 };
			int expected__ = 2;

			return verifyCase(casenum__, expected__,
					new PackingParts().pack(partSizes, boxSizes));
		}
		case 2: {
			int[] partSizes = { 10, 10, 10, 10 };
			int[] boxSizes = { 9, 9, 9, 10, 10, 10 };
			int expected__ = 3;

			return verifyCase(casenum__, expected__,
					new PackingParts().pack(partSizes, boxSizes));
		}
		case 3: {
			int[] partSizes = { 1, 1, 1, 1 };
			int[] boxSizes = { 1, 2, 2, 3, 6, 7 };
			int expected__ = 4;

			return verifyCase(casenum__, expected__,
					new PackingParts().pack(partSizes, boxSizes));
		}
		case 4: {
			int[] partSizes = { 1, 1, 1, 1 };
			int[] boxSizes = { 2, 3, 6 };
			int expected__ = 3;

			return verifyCase(casenum__, expected__,
					new PackingParts().pack(partSizes, boxSizes));
		}
		case 5: {
			int[] partSizes = { 10, 32, 46, 55, 55, 84, 100 };
			int[] boxSizes = { 15, 31, 34, 46, 59, 68, 83, 99 };
			int expected__ = 6;

			return verifyCase(casenum__, expected__,
					new PackingParts().pack(partSizes, boxSizes));
		}

		// custom cases

		/*
		 * case 6: { int[] partSizes = ; int[] boxSizes = ; int expected__ = ;
		 * 
		 * return verifyCase(casenum__, expected__, new
		 * PackingParts().pack(partSizes, boxSizes)); }
		 */
		/*
		 * case 7: { int[] partSizes = ; int[] boxSizes = ; int expected__ = ;
		 * 
		 * return verifyCase(casenum__, expected__, new
		 * PackingParts().pack(partSizes, boxSizes)); }
		 */
		/*
		 * case 8: { int[] partSizes = ; int[] boxSizes = ; int expected__ = ;
		 * 
		 * return verifyCase(casenum__, expected__, new
		 * PackingParts().pack(partSizes, boxSizes)); }
		 */
		default:
			return -1;
		}
	}