Ejemplo n.º 1
0
        public void TestReset()
        {
            var testSequence = new int[] { 1, 2, 3 };
            var enumerable   = new PermutationEnumerable <int>(testSequence);
            var set          = new List <int[]>();
            var enumerator   = enumerable.GetEnumerator();

            while (enumerator.MoveNext())
            {
                set.Add(enumerator.Current);
            }
            enumerator.Reset();
            set.Clear();
            while (enumerator.MoveNext())
            {
                set.Add(enumerator.Current);
            }
            Assert.AreEqual(6, set.Count);
            Assert.IsTrue(this.TestPermutationContent(set, new int[] { 1, 2, 3 }));
            Assert.IsTrue(this.TestPermutationContent(set, new int[] { 1, 3, 2 }));
            Assert.IsTrue(this.TestPermutationContent(set, new int[] { 3, 1, 2 }));
            Assert.IsTrue(this.TestPermutationContent(set, new int[] { 3, 2, 1 }));
            Assert.IsTrue(this.TestPermutationContent(set, new int[] { 2, 3, 1 }));
            Assert.IsTrue(this.TestPermutationContent(set, new int[] { 2, 1, 3 }));
        }