static int runTestCase(int casenum__) {
		switch (casenum__) {
		case 0: {
			String trail = "^^....^^^...";
			String[] plans = { "CwwCwwCwwCww",
					"wwwCwCwwwCww",
					"wwwwCwwwwCww" };
			int expected__ = 2;

			return verifyCase(casenum__, expected__, new Trekking().findCamps(trail, plans));
		}
		case 1: {
			String trail = "^^^^";
			String[] plans = { "wwww",
					"wwwC"
			};
			int expected__ = 0;

			return verifyCase(casenum__, expected__, new Trekking().findCamps(trail, plans));
		}
		case 2: {
			String trail = "^^.^^^^";
			String[] plans = { "wwCwwwC",
					"wwwCwww",
					"wCwwwCw" };
			int expected__ = -1;

			return verifyCase(casenum__, expected__, new Trekking().findCamps(trail, plans));
		}
		case 3: {
			String trail = "^^^^....^.^.^.";
			String[] plans = { "wwwwCwwwwCwCwC",
					"wwwwCwwCwCwwwC",
					"wwwCwwwCwwwCww",
					"wwwwwCwwwCwwwC" };
			int expected__ = 3;

			return verifyCase(casenum__, expected__, new Trekking().findCamps(trail, plans));
		}
		case 4: {
			String trail = "..............";
			String[] plans = { "CwCwCwCwCwCwCw",
					"CwwCwwCwwCwwCw" };
			int expected__ = 5;

			return verifyCase(casenum__, expected__, new Trekking().findCamps(trail, plans));
		}

		// custom cases

		/*
		 * case 5: {
		 * String trail = ;
		 * String[] plans = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum__, expected__, new
		 * Trekking().findCamps(trail, plans));
		 * }
		 */
		/*
		 * case 6: {
		 * String trail = ;
		 * String[] plans = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum__, expected__, new
		 * Trekking().findCamps(trail, plans));
		 * }
		 */
		/*
		 * case 7: {
		 * String trail = ;
		 * String[] plans = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum__, expected__, new
		 * Trekking().findCamps(trail, plans));
		 * }
		 */
		default:
			return -1;
		}
	}