static int runTestCase(int casenum__) {
		switch (casenum__) {
		case 0: {
			int[] values = { 2, 3, 5, 5, 5, 2, 0, 8 };
			String[] expected__ = { "..........", ".....X....", "..X..X....", "X.XX.X..X." };

			return verifyCase(casenum__, expected__, new ValueHistogram().build(values));
		}
		case 1: {
			int[] values = { 9, 9, 9, 9 };
			String[] expected__ = { "..........", ".........X", ".........X", ".........X", ".........X" };

			return verifyCase(casenum__, expected__, new ValueHistogram().build(values));
		}
		case 2: {
			int[] values = { 6, 4, 0, 0, 3, 9, 8, 8 };
			String[] expected__ = { "..........", "X.......X.", "X..XX.X.XX" };

			return verifyCase(casenum__, expected__, new ValueHistogram().build(values));
		}
		case 3: {
			int[] values = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
			String[] expected__ = { "..........", "XXXXXXXXXX" };

			return verifyCase(casenum__, expected__, new ValueHistogram().build(values));
		}
		case 4: {
			int[] values = { 6, 2, 3, 3, 3, 7, 8, 1, 0, 9, 2, 2, 4, 3 };
			String[] expected__ = { "..........", "...X......", "..XX......", "..XX......", "XXXXX.XXXX" };

			return verifyCase(casenum__, expected__, new ValueHistogram().build(values));
		}

		// custom cases

		/*
		 * case 5: {
		 * int[] values = ;
		 * String[] expected__ = ;
		 * 
		 * return verifyCase(casenum__, expected__, new
		 * ValueHistogram().build(values));
		 * }
		 */
		/*
		 * case 6: {
		 * int[] values = ;
		 * String[] expected__ = ;
		 * 
		 * return verifyCase(casenum__, expected__, new
		 * ValueHistogram().build(values));
		 * }
		 */
		/*
		 * case 7: {
		 * int[] values = ;
		 * String[] expected__ = ;
		 * 
		 * return verifyCase(casenum__, expected__, new
		 * ValueHistogram().build(values));
		 * }
		 */
		default:
			return -1;
		}
	}