Exemple #1
0
        public bool TrySolve(Graph graph, Action <Node[]> registerAttempt, Dictionary <string, object> runDetails)
        {
            var allPermutations = new TspPermuationWalker <Node>(graph.Nodes);

            foreach (var permutation in allPermutations)
            {
                registerAttempt(permutation);
            }
            return(true);
        }
Exemple #2
0
        public void PermutationEnumeration()
        {
            var testCount  = 5;
            var collection = new string[testCount];

            for (int i = 0; i < testCount; i++)
            {
                collection[i] = i.ToString();
            }

            var enumerator = new TspPermuationWalker <string>(collection);

            var results = enumerator.ToArray();

            var permutations = 1;

            for (int i = 1; i < testCount; i++)
            {
                permutations *= i;
            }

            Assert.AreEqual(permutations, results.Length);

            var checkUnique = new HashSet <string>();

            foreach (var permutation in results)
            {
                Assert.AreEqual("0", permutation[0]);
                Assert.AreEqual(testCount, permutation.Length);
                var stringified = string.Join("-", permutation);
                if (checkUnique.Contains(stringified))
                {
                    Assert.Fail(stringified + " is not unique");
                }
                checkUnique.Add(stringified);
            }
        }