Beispiel #1
0
        public void MoveValuesToStart()
        {
            var values = new List <int> {
                1, 2, 3, 4, 5
            };
            var array = new MultiDimensionalArray <int>(values, new[] { 5 });

            // move 2nd dimension index
            var dimension  = 0;
            var startIndex = 3;
            var length     = 2;
            var newIndex   = 0;

            int callCount = 0;

            array.CollectionChanged += delegate
            {
                callCount++;
            };

            array.Move(dimension, startIndex, length, newIndex);

            Assert.AreEqual(new[] { 4, 5, 1, 2, 3 }, array);
            //every value changed
            Assert.AreEqual(5, callCount);
        }
Beispiel #2
0
        public void MoveDimensionAtGivenIndexAndLength()
        {
            var values = new List <int> {
                1, 2, 3, 4, 5
            };
            var array = new MultiDimensionalArray <int>(values, new[] { 1, 5 });

            // move 2nd dimension index
            var dimension  = 1;
            var startIndex = 1;
            var length     = 2;
            var newIndex   = 3;

            array.Move(dimension, startIndex, length, newIndex);

            Assert.IsTrue(array.SequenceEqual(new[] { 1, 4, 5, 2, 3 }));
        }
Beispiel #3
0
        public void MoveDimensionAtGivenIndexAndLength()
        {
            var values = new List <int> {
                1, 2, 3, 4
            };
            IMultiDimensionalArray <int> array = new MultiDimensionalArray <int>(values, new[] { 1, 4 });

            var view = array.Select(1, 2, 3); // select { 1, 2, [3, 4] }

            // move 2nd dimension index
            var dimension  = 1;
            var startIndex = 1;
            var length     = 2;
            var newIndex   = 0;

            array.Move(dimension, startIndex, length, newIndex); // 1, 2, 3, 4  => 2, 3, 1, 4

            //  2, 3, [1, 4]
            Assert.IsTrue(view.SequenceEqual(new[] { 1, 4 }));
        }
Beispiel #4
0
        public void MoveSingleValueToEnd()
        {
            var values = new List <int> {
                20, 30, 50
            };
            var array = new MultiDimensionalArray <int>(values, new[] { 3 });

            // move 2nd dimension index
            var dimension  = 0;
            var startIndex = 0;
            var length     = 1;
            var newIndex   = 2;

            int callCount = 0;

            array.CollectionChanged += delegate { callCount++; };
            array.Move(dimension, startIndex, length, newIndex);

            Assert.AreEqual(new[] { 30, 50, 20 }, array);
            Assert.AreEqual(3, callCount);
        }
Beispiel #5
0
        public void MoveDimensionToBeginAtGivenIndexAndLength()
        {
            var values = new List <int> {
                1, 2, 3, 4, 5
            };
            var array = new MultiDimensionalArray <int>(values, new[] { 5 });

            // move 2nd dimension index
            var dimension  = 0;
            var startIndex = 2;
            var length     = 2;
            var newIndex   = 0;


            int callCount = 0;

            array.CollectionChanged += delegate { callCount++; };
            array.Move(dimension, startIndex, length, newIndex);

            Assert.IsTrue(array.SequenceEqual(new[] { 3, 4, 1, 2, 5 }));
            Assert.AreEqual(4, callCount);
        }
        public void MoveDimensionAtGivenIndexAndLength()
        {
            var values = new List<int> { 1, 2, 3, 4 };
            IMultiDimensionalArray<int> array = new MultiDimensionalArray<int>(values, new[] { 1, 4 });

            var view = array.Select(1, 2, 3); // select { 1, 2, [3, 4] }

            // move 2nd dimension index
            var dimension = 1;
            var startIndex = 1;
            var length = 2;
            var newIndex = 0;
            array.Move(dimension, startIndex, length, newIndex); // 1, 2, 3, 4  => 2, 3, 1, 4

            //  2, 3, [1, 4]
            Assert.IsTrue(view.SequenceEqual(new[] { 1, 4 }));
        }
        public void MoveValuesToStart()
        {
            var values = new List<int> {1, 2, 3, 4, 5};
            var array = new MultiDimensionalArray<int>(values, new[] {5});

            // move 2nd dimension index
            var dimension = 0;
            var startIndex = 3;
            var length = 2;
            var newIndex = 0;

            int callCount = 0;
            array.CollectionChanged += delegate
                                           {
                                               callCount++;
                                           };
            
            array.Move(dimension, startIndex, length, newIndex);
            
            Assert.AreEqual(new[] {4, 5, 1, 2, 3}, array);
            //every value changed
            Assert.AreEqual(5,callCount);
            
        }
        public void MoveSingleValueToEnd()
        {
            var values = new List<int> { 20, 30, 50 };
            var array = new MultiDimensionalArray<int>(values, new[] { 3});

            // move 2nd dimension index
            var dimension = 0;
            var startIndex = 0;
            var length = 1;
            var newIndex = 2;

            int callCount = 0;
            array.CollectionChanged += delegate { callCount++; };
            array.Move(dimension, startIndex, length, newIndex);

            Assert.AreEqual(new[] { 30, 50,20},array);
            Assert.AreEqual(3,callCount);
        }
        public void MoveDimensionToBeginAtGivenIndexAndLength()
        {
            var values = new List<int> { 1, 2, 3, 4, 5 };
            var array = new MultiDimensionalArray<int>(values, new[] { 5 });

            // move 2nd dimension index
            var dimension = 0;
            var startIndex = 2;
            var length = 2;
            var newIndex = 0;


            int callCount = 0;
            array.CollectionChanged += delegate { callCount++; };
            array.Move(dimension, startIndex, length, newIndex);

            Assert.IsTrue(array.SequenceEqual(new[] { 3, 4, 1, 2, 5 }));
            Assert.AreEqual(4,callCount);
        }
        public void MoveDimensionAtGivenIndexAndLength()
        {
            var values = new List<int> { 1, 2, 3, 4, 5 };
            var array = new MultiDimensionalArray<int>(values, new[] {1, 5 });

            // move 2nd dimension index
            var dimension = 1;
            var startIndex = 1;
            var length = 2;
            var newIndex = 3;

            array.Move(dimension, startIndex, length, newIndex);

            Assert.IsTrue(array.SequenceEqual(new[] { 1, 4, 5, 2, 3 }));
        }
 public void ReadOnlyMove()
 {
     var array = new MultiDimensionalArray(true, false, 1, new[] { 1 }, new[] { 1 });
     array.Move(0, 0, 0,0);
 }