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 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 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 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 }; 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); }