Пример #1
0
        public void IndexRestrictionsTest()
        {
            const int count    = 10;
            var       array    = new int[count];
            var       ref_view = new RefArrayView <int>(array, true);

            Assert.That.Method(ref_view, view => view.Index[-1] = 0)
            .Throw <ArgumentOutOfRangeException>()
            .Where(ex => ex.ParamName).Check(p => p.IsEqual("index"))
            .Where(ex => ex.ActualValue).IsEqual(-1);

            Assert.That.Method(ref_view, view => view.Index[count] = 0)
            .Throw <ArgumentOutOfRangeException>()
            .Where(ex => ex.ParamName).Check(p => p.IsEqual("index"))
            .Where(ex => ex.ActualValue).IsEqual(count);

            Assert.That.Method(ref_view, view => view.Index[0] = -1)
            .Throw <ArgumentOutOfRangeException>()
            .Where(ex => ex.ParamName).Check(p => p.IsEqual("value"))
            .Where(ex => ex.ActualValue).IsEqual(-1);

            Assert.That.Method(ref_view, view => view.Index[0] = count)
            .Throw <ArgumentOutOfRangeException>()
            .Where(ex => ex.ParamName).Check(p => p.IsEqual("value"))
            .Where(ex => ex.ActualValue).IsEqual(count);
        }
Пример #2
0
        public void SetIndexTest()
        {
            var array    = new int[10];
            var ref_view = new RefArrayView <int>(array);

            ref_view.Index[3] = 5;
            Assert.That.Value(ref_view.Index[3]).IsEqual(5);
        }
Пример #3
0
        public void SourceTest()
        {
            var array    = new int[10];
            var ref_view = new RefArrayView <int>(array);

            Assert.That.Value(ref_view.Source)
            .IsReferenceEquals(array);
        }
Пример #4
0
        public void InverseCreatedIndexTest()
        {
            var array    = new int[10];
            var ref_view = new RefArrayView <int>(array, true);

            for (var i = 0; i < array.Length; i++)
            {
                Assert.That.Value(ref_view.Index[i]).IsEqual(array.Length - i - 1);
            }
        }
Пример #5
0
        public void SetIndexesTest()
        {
            var array    = new int[10];
            var ref_view = new RefArrayView <int>(array);

            for (var i = 0; i < array.Length; i++)
            {
                ref_view.Index[i] = array.Length - i - 1;
            }

            for (var i = 0; i < array.Length; i++)
            {
                Assert.That.Value(ref_view.Index[i]).IsEqual(array.Length - i - 1);
            }
        }
Пример #6
0
        public void InvertedCreation()
        {
            var array = Enumerable.Range(1, 5).ToArray();
            // ReSharper disable once CollectionNeverQueried.Local
            var ref_view = new RefArrayView <int>(array, true);

            var reversed = new int[array.Length];

            for (var i = 0; i < array.Length; i++)
            {
                reversed[i] = ref_view[i];
            }

            CollectionAssert.That.Collection(reversed).IsEqualTo(array.GetReversed());
        }
Пример #7
0
        public void WriteMixArrayItems()
        {
            var array = new int[5];
            // ReSharper disable once CollectionNeverQueried.Local
            var ref_view = new RefArrayView <int>(array)
            {
                Index =
                {
                    [0] = 4,
                    [1] = 2,
                    [2] = 0,
                    [3] = 1,
                    [4] = 3
                }
            };

            for (var i = 0; i < array.Length; i++)
            {
                ref_view[i] = i + 1;
            }

            CollectionAssert.That.Collection(array).IsEqualTo(new[] { 3, 4, 2, 5, 1 });
        }