static int runTestCase(int casenum__) {
		switch (casenum__) {
		case 0: {
			String[] words = { "abca", "zbxz", "opqr" };
			int expected__ = 1;

			return verifyCase(casenum__, expected__, new IsomorphicWords().countPairs(words));
		}
		case 1: {
			String[] words = { "aa", "ab", "bb", "cc", "cd" };
			int expected__ = 4;

			return verifyCase(casenum__, expected__, new IsomorphicWords().countPairs(words));
		}
		case 2: {
			String[] words = { "cacccdaabc", "cdcccaddbc", "dcdddbccad", "bdbbbaddcb",
					"bdbcadbbdc", "abaadcbbda", "babcdabbac", "cacdbaccad",
					"dcddabccad", "cacccbaadb", "bbcdcbcbdd", "bcbadcbbca" };
			int expected__ = 13;

			return verifyCase(casenum__, expected__, new IsomorphicWords().countPairs(words));
		}

		// custom cases

		/*
		 * case 3: {
		 * String[] words = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum__, expected__, new
		 * IsomorphicWords().countPairs(words));
		 * }
		 */
		/*
		 * case 4: {
		 * String[] words = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum__, expected__, new
		 * IsomorphicWords().countPairs(words));
		 * }
		 */
		/*
		 * case 5: {
		 * String[] words = ;
		 * int expected__ = ;
		 *
		 * return verifyCase(casenum__, expected__, new
		 * IsomorphicWords().countPairs(words));
		 * }
		 */
		default:
			return -1;
		}
	}