static int runTestCase(int casenum__) {
		switch (casenum__) {
		case 0: {
			int lowerBound = 0;
			int upperBound = 1;
			int expected__ = 2;

			return verifyCase(casenum__, expected__, new SumsOfPerfectPowers().howMany(lowerBound, upperBound));
		}
		case 1: {
			int lowerBound = 5;
			int upperBound = 6;
			int expected__ = 1;

			return verifyCase(casenum__, expected__, new SumsOfPerfectPowers().howMany(lowerBound, upperBound));
		}
		case 2: {
			int lowerBound = 25;
			int upperBound = 30;
			int expected__ = 5;

			return verifyCase(casenum__, expected__, new SumsOfPerfectPowers().howMany(lowerBound, upperBound));
		}
		case 3: {
			int lowerBound = 103;
			int upperBound = 103;
			int expected__ = 0;

			return verifyCase(casenum__, expected__, new SumsOfPerfectPowers().howMany(lowerBound, upperBound));
		}
		case 4: {
			int lowerBound = 1;
			int upperBound = 100000;
			int expected__ = 33604;

			return verifyCase(casenum__, expected__, new SumsOfPerfectPowers().howMany(lowerBound, upperBound));
		}

		// custom cases

		case 5: {
			int lowerBound = 0;
			int upperBound = 5000000;
			int expected__ = 1272868;

			return verifyCase(casenum__, expected__, new
					SumsOfPerfectPowers().howMany(lowerBound, upperBound));
		}
		/*
		 * case 6: {
		 * int lowerBound = ;
		 * int upperBound = ;
		 * int expected__ = ;
		 * 
		 * return verifyCase(casenum__, expected__, new
		 * SumsOfPerfectPowers().howMany(lowerBound, upperBound));
		 * }
		 */
		/*
		 * case 7: {
		 * int lowerBound = ;
		 * int upperBound = ;
		 * int expected__ = ;
		 * 
		 * return verifyCase(casenum__, expected__, new
		 * SumsOfPerfectPowers().howMany(lowerBound, upperBound));
		 * }
		 */
		default:
			return -1;
		}
	}