@Test
	public void testEnumPerm() {
		Set<String> set = new HashSet<String>();

		long np = 1;
		for (int i = 1; i <= numAry.length; i++) {
			np *= i;
		}

		// get n! permutation
		for (long i = 0; i < np; i++) {
			Integer[] a = Arrays.copyOf(numAry, numAry.length);
			Permutation<Integer> perm = new PermutationImpl<Integer>(a);
			String c = StringUtils.join(perm.get(i), ",");
			set.add(c);
		}

		// get the n! permutations in second method
		Permutation<Integer> perm = new PermutationImpl<Integer>(numAry);
		for (Integer[] na : perm) {
			String b = StringUtils.join(na, ",");
			Assert.assertTrue(set.contains(b));
		}
	}