Esempio n. 1
0
        public void ChangeSizeOfLastDimension()
        {
            //we don't use interface because want to check stride
            var array = new MultiDimensionalArray();

            array.Resize(2, 1);

            array[0, 0] = 1; // 0 + 0
            array[1, 0] = 2; // 2 + 0

            // 1   1 <= stride
            Assert.AreEqual(new[] { 1, 1 }, array.Stride);

            log.InfoFormat("Before resize: {0}", array.ToString());

            array.Resize(new[] { 2, 2 });

            log.InfoFormat("After resize: {0}", array.ToString());

            Assert.AreEqual(2, array.Rank);
            Assert.AreEqual(4, array.Count);

            Assert.AreEqual(1, array[0, 0]);
            Assert.AreEqual(2, array[1, 0]);
            Assert.IsNull(array[0, 1]);
            Assert.IsNull(array[1, 1]);
        }
        public void ChangeSizeOfLastDimension()
        {
            //we don't use interface because want to check stride
            var array = new MultiDimensionalArray();

            array.Resize(2, 1);

            array[0, 0] = 1; // 0 + 0
            array[1, 0] = 2; // 2 + 0

            // 1   1 <= stride
            Assert.AreEqual(new[] { 1, 1 }, array.Stride);

            log.InfoFormat("Before resize: {0}", array.ToString());

            array.Resize(new[] { 2, 2 });

            log.InfoFormat("After resize: {0}", array.ToString());

            Assert.AreEqual(2, array.Rank);
            Assert.AreEqual(4, array.Count);

            Assert.AreEqual(1, array[0, 0]);
            Assert.AreEqual(2, array[1, 0]);
            Assert.IsNull(array[0, 1]);
            Assert.IsNull(array[1, 1]);
        }
Esempio n. 3
0
        public void InsertAtRemoveAt()
        {
            IMultiDimensionalArray array = new MultiDimensionalArray();

            array.Resize(2, 2);
            array[0, 0] = 5;
            array[1, 1] = 2;

            array.InsertAt(0, 2);
            log.Info(array.ToString());
            array.RemoveAt(0, 2);
            log.Info(array.ToString());
            array.InsertAt(0, 2);
            log.Info(array.ToString());
            array.RemoveAt(0, 2);
            log.Info(array.ToString());
        }
Esempio n. 4
0
        public void Create1D()
        {
            IMultiDimensionalArray array = new MultiDimensionalArray();

            array.Add(1);
            array.Add(2);
            array.Add(3);
            array.Remove(2);

            log.Info(array.ToString());

            Assert.AreEqual(1, array.Rank);
            Assert.AreEqual(2, array.Count);
        }
        public void ChangeSizeOfFirstDimension()
        {
            IMultiDimensionalArray array = new MultiDimensionalArray();

            array.Resize(1, 2);

            array[0, 0] = 1; // 0 + 0
            array[0, 1] = 2; // 0 + 1
            // 2   1 <= stride

            log.InfoFormat("Before resize: {0}", array.ToString());

            array.Resize(new[] { 2, 2 });

            log.InfoFormat("After resize: {0}", array.ToString());

            Assert.AreEqual(2, array.Rank);
            Assert.AreEqual(4, array.Count);

            Assert.AreEqual(1, array[0, 0]);
            Assert.AreEqual(2, array[0, 1]);
            Assert.IsNull(array[1, 0]);
            Assert.IsNull(array[1, 1]);
        }
Esempio n. 6
0
        public void ChangeSizeOfFirstDimension()
        {
            IMultiDimensionalArray array = new MultiDimensionalArray();

            array.Resize(1, 2);

            array[0, 0] = 1; // 0 + 0
            array[0, 1] = 2; // 0 + 1
            // 2   1 <= stride

            log.InfoFormat("Before resize: {0}", array.ToString());

            array.Resize(new[] { 2, 2 });

            log.InfoFormat("After resize: {0}", array.ToString());

            Assert.AreEqual(2, array.Rank);
            Assert.AreEqual(4, array.Count);

            Assert.AreEqual(1, array[0, 0]);
            Assert.AreEqual(2, array[0, 1]);
            Assert.IsNull(array[1, 0]);
            Assert.IsNull(array[1, 1]);
        }
Esempio n. 7
0
        public void Create3D()
        {
            IMultiDimensionalArray array = new MultiDimensionalArray(2, 2, 2);

            array[0, 0, 0] = 1; // 0 + 0 + 0
            array[0, 0, 1] = 2; // 0 + 0 + 1
            array[0, 1, 0] = 3; // 0 + 4 + 0
            array[0, 1, 1] = 4; // 0 + 4 + 1
            array[1, 0, 0] = 5; // 4 + 0 + 0
            array[1, 0, 1] = 6; // 4 + 0 + 0
            array[1, 1, 0] = 7; // 4 + 2 + 0
            array[1, 1, 1] = 8; // 4 + 2 + 2
            // 4   2   1 <= strides

            log.InfoFormat("3D array: {0}", array.ToString());

            Assert.AreEqual(3, array.Rank);
            Assert.AreEqual(8, array.Count);
        }
        public void InsertAtRemoveAt()
        {
            IMultiDimensionalArray array = new MultiDimensionalArray();
            array.Resize(2, 2);
            array[0, 0] = 5;
            array[1, 1] = 2;

            array.InsertAt(0, 2);
            log.Info(array.ToString());
            array.RemoveAt(0, 2);
            log.Info(array.ToString());
            array.InsertAt(0, 2);
            log.Info(array.ToString());
            array.RemoveAt(0, 2);
            log.Info(array.ToString());
        }
        public void Create3D()
        {
            IMultiDimensionalArray array = new MultiDimensionalArray(2, 2, 2);

            array[0, 0, 0] = 1; // 0 + 0 + 0
            array[0, 0, 1] = 2; // 0 + 0 + 1
            array[0, 1, 0] = 3; // 0 + 4 + 0 
            array[0, 1, 1] = 4; // 0 + 4 + 1
            array[1, 0, 0] = 5; // 4 + 0 + 0
            array[1, 0, 1] = 6; // 4 + 0 + 0
            array[1, 1, 0] = 7; // 4 + 2 + 0
            array[1, 1, 1] = 8; // 4 + 2 + 2
            // 4   2   1 <= strides

            log.InfoFormat("3D array: {0}", array.ToString());

            Assert.AreEqual(3, array.Rank);
            Assert.AreEqual(8, array.Count);
        }
        public void Create1D()
        {
            IMultiDimensionalArray array = new MultiDimensionalArray();

            array.Add(1);
            array.Add(2);
            array.Add(3);
            array.Remove(2);

            log.Info(array.ToString());

            Assert.AreEqual(1, array.Rank);
            Assert.AreEqual(2, array.Count);
        }
        public void InsertAtGivesAggregatedCollectionChangingEvent()
        {
            var array = new MultiDimensionalArray<double>(new[] {2, 2});

            var callCount = 0;
            array.CollectionChanging += (s, e) =>
                                            {
                                                callCount++;
                                                Assert.AreEqual(NotifyCollectionChangeAction.Add, e.Action);
                                                Assert.AreEqual(new[] {0, 0}, e.MultiDimensionalIndex);
                                                Assert.AreEqual(new[] {3, 2}, e.Shape);
                                                    //inserted a 3x2 block
                                                Assert.AreEqual(new[] { 1, 2, 3, 4, 5, 6 }, e.Items);
                                            };

            //insert 2 slices on the first dimension
            array.InsertAt(0, 0, 3, new object[] {1.0, 2.0, 3.0, 4.0, 5.0, 6.0});

            Assert.AreEqual(1, callCount);
            Assert.AreEqual("{{1, 2}, {3, 4}, {5, 6}, {0, 0}, {0, 0}}", array.ToString());
        }