Ejemplo n.º 1
0
        private void TryPermutation(int[] numberSet, int[][] expectedValues)
        {
            var enumeration = NumberSetShiftGroupEnumeration.New(numberSet).GetEnumerator();

            int count = 0;

            while (enumeration.MoveNext())
            {
                Log.Debug(".tryPermutation count=" + count);

                int[] result   = enumeration.Current;
                int[] expected = expectedValues[count];

                Log.Debug(".tryPermutation result=" + result.Render());
                Log.Debug(".tryPermutation expected=" + expected.Render());

                AssertSet(expected, result);

                count++;
                Assert.IsTrue(Collections.AreEqual(result, expected), "Mismatch in count=" + count);
            }
            Assert.AreEqual(count, expectedValues.Length);

            Assert.IsFalse(enumeration.MoveNext());
        }
Ejemplo n.º 2
0
        private int CountEnumeration(int[] numberSet)
        {
            var enumeration = NumberSetShiftGroupEnumeration.New(numberSet).GetEnumerator();
            int count       = 0;

            while (enumeration.MoveNext())
            {
                int[] result = enumeration.Current;
                AssertSet(numberSet, result);
                count++;
            }
            return(count);
        }
Ejemplo n.º 3
0
        public void TestGen()
        {
            Assert.AreEqual(29, CountEnumeration(new [] { 1, 2, 3, 4, 5, 6 }));
            Assert.AreEqual(31, CountEnumeration(new [] { 1, 2, 3, 4, 5, 6, 7, 8 }));

            int[] set = new [] { 1, 2, 3, 4, 5, 6, 7 };

            int[][] expectedValues = new [] {
                new [] { 1, 2, 3, 4, 5, 6, 7 },
                new [] { 2, 3, 4, 5, 6, 7, 1 },
                new [] { 3, 4, 5, 6, 7, 1, 2 },
                new [] { 4, 5, 6, 7, 1, 2, 3 },
                new [] { 5, 6, 7, 1, 2, 3, 4 },
                new [] { 6, 7, 1, 2, 3, 4, 5 },
                new [] { 7, 1, 2, 3, 4, 5, 6 },
                new [] { 1, 5, 2, 6, 4, 3, 7 },
                new [] { 1, 5, 3, 7, 2, 6, 4 },
                new [] { 1, 5, 3, 7, 4, 2, 6 },
                new [] { 1, 5, 4, 2, 6, 3, 7 },
                new [] { 1, 5, 4, 3, 7, 2, 6 },
                new [] { 2, 6, 1, 5, 3, 7, 4 },
                new [] { 2, 6, 1, 5, 4, 3, 7 },
                new [] { 2, 6, 3, 7, 1, 5, 4 },
                new [] { 2, 6, 3, 7, 4, 1, 5 },
                new [] { 2, 6, 4, 1, 5, 3, 7 },
                new [] { 2, 6, 4, 3, 7, 1, 5 },
                new [] { 3, 7, 1, 5, 2, 6, 4 },
                new [] { 3, 7, 1, 5, 4, 2, 6 },
                new [] { 3, 7, 2, 6, 1, 5, 4 },
                new [] { 3, 7, 2, 6, 4, 1, 5 },
                new [] { 3, 7, 4, 1, 5, 2, 6 },
                new [] { 3, 7, 4, 2, 6, 1, 5 },
                new [] { 4, 1, 5, 2, 6, 3, 7 },
                new [] { 4, 1, 5, 3, 7, 2, 6 },
                new [] { 4, 2, 6, 1, 5, 3, 7 },
                new [] { 4, 2, 6, 3, 7, 1, 5 },
                new [] { 4, 3, 7, 1, 5, 2, 6 },
                new [] { 4, 3, 7, 2, 6, 1, 5 },
            };

            /** Comment in here to print */
#if false
            var enumeration = NumberSetShiftGroupEnumeration.Create(set).GetEnumerator();
            while (enumeration.MoveNext())
            {
                Console.WriteLine(enumeration.Current.Render());
            }
#endif

            TryPermutation(set, expectedValues);
        }