static int runTestCase(int casenum__) {
		switch (casenum__) {
		case 0: {
			int nextCost = 5;
			int prevCost = 8;
			String start = "ae";
			String goal = "bc";
			int expected__ = 21;

			return verifyCase(casenum__, expected__,
					new NextOrPrevTemp().getMinimum(nextCost, prevCost, start,
							goal));
		}
		case 1: {
			int nextCost = 5;
			int prevCost = 8;
			String start = "ae";
			String goal = "cb";
			int expected__ = -1;

			return verifyCase(casenum__, expected__,
					new NextOrPrevTemp().getMinimum(nextCost, prevCost, start,
							goal));
		}
		case 2: {
			int nextCost = 1;
			int prevCost = 1;
			String start = "srm";
			String goal = "srm";
			int expected__ = 0;

			return verifyCase(casenum__, expected__,
					new NextOrPrevTemp().getMinimum(nextCost, prevCost, start,
							goal));
		}
		case 3: {
			int nextCost = 10;
			int prevCost = 1;
			String start = "acb";
			String goal = "bdc";
			int expected__ = 30;

			return verifyCase(casenum__, expected__,
					new NextOrPrevTemp().getMinimum(nextCost, prevCost, start,
							goal));
		}
		case 4: {
			int nextCost = 10;
			int prevCost = 1;
			String start = "zyxw";
			String goal = "vuts";
			int expected__ = 16;

			return verifyCase(casenum__, expected__,
					new NextOrPrevTemp().getMinimum(nextCost, prevCost, start,
							goal));
		}
		case 5: {
			int nextCost = 563;
			int prevCost = 440;
			String start = "ptrbgcnlaizo";
			String goal = "rtscedkiahul";
			int expected__ = 10295;

			return verifyCase(casenum__, expected__,
					new NextOrPrevTemp().getMinimum(nextCost, prevCost, start,
							goal));
		}
		case 6: {
			int nextCost = 126;
			int prevCost = 311;
			String start = "yovlkwpjgsna";
			String goal = "zpwnkytjisob";
			int expected__ = -1;

			return verifyCase(casenum__, expected__,
					new NextOrPrevTemp().getMinimum(nextCost, prevCost, start,
							goal));
		}

		// custom cases

		case 7: {
			int nextCost = 1;
			int prevCost = 1;
			String start = "ab";
			String goal = "dc";
			int expected__ = -1;

			return verifyCase(casenum__, expected__,
					new NextOrPrevTemp().getMinimum(nextCost, prevCost, start,
							goal));
		}
		/*
		 * case 8: { int nextCost = ; int prevCost = ; String start = ; String
		 * goal = ; int expected__ = ;
		 *
		 * return verifyCase(casenum__, expected__, new
		 * NextOrPrev().getMinimum(nextCost, prevCost, start, goal)); }
		 */
		/*
		 * case 9: { int nextCost = ; int prevCost = ; String start = ; String
		 * goal = ; int expected__ = ;
		 *
		 * return verifyCase(casenum__, expected__, new
		 * NextOrPrev().getMinimum(nextCost, prevCost, start, goal)); }
		 */
		default:
			return -1;
		}
	}