Ejemplo n.º 1
0
        public void TestGeneratePermutationFromKey(int numObjects)
        {
            var factorial            = new FactorialCalculator().Factorial(numObjects);
            var permutationGenerator = new PermutationGenerator();
            var permutationSet       = new HashSet <string>();

            for (int i = 0; i < factorial; i++)
            {
                var permutation       = permutationGenerator.GeneratePermutationFromKey(i, numObjects).GetPermutation();
                var permutationString = permutation.Aggregate("", (agg, digit) => $"{agg}{digit}");
                Assert.False(permutationSet.Contains(permutationString));
                permutationSet.Add(permutationString);
            }
            Assert.AreEqual(factorial, permutationSet.Count);
        }