Esempio n. 1
0
        [Test] public void Rotate_Iterator()
        {
            int[] array = new int[12];
            array[0] = Int32.MinValue;
            array[array.Length - 1] = Int32.MinValue;
            for (int i = 1; i <= 10; ++i)
            {
                array[i] = i;
            }

            ListIterator <int> begin = new ListIterator <int>(array, 1);
            ListIterator <int> end   = IteratorUtil.End(array);

            end.MovePrev();
            ListIterator <int> newBeginIter = new ListIterator <int>(array, 4);

            Algorithm.Rotate(begin, newBeginIter, end);
            Assert.AreEqual(Int32.MinValue, array[0]);
            Assert.AreEqual(Int32.MinValue, array[array.Length - 1]);
            for (int i = 1, c = 4; i < 8; ++i, ++c)
            {
                Assert.AreEqual(c, array[i]);
            }

            for (int i = 8, c = 1; i < 11; ++i, ++c)
            {
                Assert.AreEqual(c, array[i]);
            }
        }
Esempio n. 2
0
        [Test] public void CopyBackward_Enumerable()
        {
            ListIterator <string> destIter = IteratorUtil.End(dest);

            destIter.MovePrev();

            Algorithm.CopyBackward(src as IEnumerable <string>, destIter);

            Assert.AreEqual(dest[0], MARKER);
            Assert.AreEqual(dest[dest.Length - 1], MARKER);
            for (int i = 1; i < dest.Length - 1; ++i)
            {
                Assert.AreEqual(src[i - 1], dest[i]);
            }
        }
Esempio n. 3
0
        [Test] public void CopyBackward_List()
        {
            ListIterator <int> destIter = IteratorUtil.End(dest);

            destIter.MovePrev();

            Algorithm.CopyBackward(src, destIter);

            Assert.AreEqual(dest[0], Int32.MinValue);
            Assert.AreEqual(dest[dest.Length - 1], Int32.MinValue);
            for (int i = 1; i < dest.Length - 1; ++i)
            {
                Assert.AreEqual(src[i - 1], dest[i]);
            }
        }
Esempio n. 4
0
        [Test] public void Generate_Iterator()
        {
            int[] array = new int[10];
            ListIterator <int> begin = IteratorUtil.Begin(array);
            ListIterator <int> end   = IteratorUtil.End(array);

            begin.MoveNext();
            end.MovePrev();
            Algorithm.Generate(begin, end, Generator);

            Assert.AreEqual(0, array[0]);
            Assert.AreEqual(0, array[array.Length - 1]);
            for (int i = 1; i < array.Length - 1; ++i)
            {
                Assert.AreEqual(42, array[i]);
            }
        }
Esempio n. 5
0
        [Test] public void Reverse_Iterator()
        {
            ListIterator <int> destIter = IteratorUtil.Begin(dest);

            destIter.MoveNext();
            Algorithm.Copy(src, destIter);

            ListIterator <int> endIter = IteratorUtil.End(dest);

            endIter.MovePrev();

            Algorithm.Reverse(destIter, endIter);

            Assert.AreEqual(dest[0], Int32.MinValue);
            Assert.AreEqual(dest[dest.Length - 1], Int32.MinValue);
            for (int i = 0; i < count; ++i)
            {
                Assert.AreEqual(src[i], dest[dest.Length - 2 - i]);
            }
        }
Esempio n. 6
0
        [Test] public void FillN_Iterator()
        {
            int[] array = new int[10];
            ListIterator <int> begin = IteratorUtil.Begin(array);
            ListIterator <int> end   = IteratorUtil.End(array);

            begin.MoveNext();
            end.MovePrev();

            OutputIterator <int> result = Algorithm.FillN(begin, 8, 42);

            Assert.AreEqual(0, array[0]);
            Assert.AreEqual(0, array[array.Length - 1]);
            for (int i = 1; i < array.Length - 1; ++i)
            {
                Assert.AreEqual(42, array[i]);
            }
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(typeof(ListIterator <int>), result);
            Assert.AreEqual(9, (result as ListIterator <int>).Position);
        }