Ejemplo n.º 1
0
        public void Slice3()
        {
            //>>> x = ArraySlice<int>.Range(6)
            //>>> x
            //array([0, 1, 2, 3, 4, 5])
            //>>> y = x[1:5]
            //>>> y
            //array([1, 2, 3, 4])
            //>>> z = y[:3]
            //>>> z
            //array([1, 2, 3])
            //>>> z[0] = 99
            //>>> y
            //array([99, 2, 3, 4])
            //>>> x
            //array([0, 99, 2, 3, 4, 5])
            //>>>
            var x = ArraySlice <int> .Range(6);

            var y = x["1:5"];

            Assert.AreEqual(new int[] { 1, 2, 3, 4, }, y);
            var z = y[":3"];

            Assert.AreEqual(new int[] { 1, 2, 3 }, z);
            z[0] = 99;
            Assert.AreEqual(new int[] { 99, 2, 3, 4 }, y);
            Assert.AreEqual(new int[] { 0, 99, 2, 3, 4, 5 }, x);
        }
Ejemplo n.º 2
0
        public void GetValue_2D()
        {
            var a = ArraySlice <int> .Range(12).Reshape(3, 4);

            Assert.IsTrue(a.GetValue(1, 1) == 5);
            Assert.IsTrue(a.GetValue(2, 0) == 8);
        }
Ejemplo n.º 3
0
        public void GetValue_3D()
        {
            var a = ArraySlice <int> .Range(8).Reshape(2, 2, 2);

            Assert.AreEqual(a.GetValue(1, 1, 1), 7);
            Assert.AreEqual(a.GetValue(1, 1, 0), 6);
            Assert.AreEqual(a.GetValue(1, 0, 0), 4);
        }
Ejemplo n.º 4
0
        public void RowAccess()
        {
            var a = ArraySlice <int> .Range(4).Reshape(2, 2);

            var row1 = a["0"];

            Assert.AreEqual(row1[0], 0);
            Assert.AreEqual(row1[1], 1);
        }
Ejemplo n.º 5
0
        public void IndexAccessorSetter()
        {
            var a = ArraySlice <int> .Range(12).Reshape(3, 4);

            Assert.IsTrue(a.GetValue(0, 3) == 3);
            Assert.IsTrue(a.GetValue(1, 3) == 7);

            // set value
            a[0, 0] = 10;
            Assert.IsTrue(a.GetValue(0, 0) == 10);
            Assert.IsTrue(a.GetValue(1, 3) == 7);
        }
Ejemplo n.º 6
0
        public void RowAccess_3D()
        {
            var a = ArraySlice <int> .Range(1, 18, 1).Reshape(3, 3, 2);

            var row1 = a["0"];

            Assert.AreEqual(row1[0, 0], 1);
            Assert.AreEqual(row1[0, 1], 2);
            Assert.AreEqual(row1[1, 0], 3);
            Assert.AreEqual(row1[1, 1], 4);
            Assert.AreEqual(row1[2, 0], 5);
            Assert.AreEqual(row1[2, 1], 6);
        }
Ejemplo n.º 7
0
        public void Slice1()
        {
            var x = ArraySlice <int> .Range(5);

            var y1 = x["1:3"];

            Assert.AreEqual(y1, new int[] { 1, 2 });

            var y2 = x["3:"];

            Assert.AreEqual(y2, new int[] { 3, 4 });
            y2[0] = 8;
            y2[1] = 9;
            Assert.AreEqual((int)y2[0], 8);
        }
Ejemplo n.º 8
0
        public void Slice_Step2()
        {
            //>>> x = ArraySlice<int>.Range(5)
            //>>> x
            //array([0, 1, 2, 3, 4])
            var x = ArraySlice <int> .Range(5);

            //>>> y = x[::2]
            //>>> y
            //array([0, 2, 4])
            var y = x["::2"];

            Assert.AreEqual(0, (int)y[0]);
            Assert.AreEqual(2, (int)y[1]);
            Assert.AreEqual(4, (int)y[2]);
        }
Ejemplo n.º 9
0
        public void Slice4()
        {
            //>>> x = ArraySlice<int>.Range(5)
            //>>> x
            //array([0, 1, 2, 3, 4])
            var x = ArraySlice <int> .Range(5);

            //>>> y = x[2:4]
            //>>> y
            //array([2,3])
            var y = x["2:4"];

            Assert.AreEqual(2, (int)y[0]);
            Assert.AreEqual(3, (int)y[1]);
            y[0] = 77;
            y[1] = 99;
            Assert.AreEqual(77, (int)x[2]);
            Assert.AreEqual(99, (int)x[3]);
        }
Ejemplo n.º 10
0
        public void Slice_Step()
        {
            //>>> x = ArraySlice<int>.Range(5)
            //>>> x
            //array([0, 1, 2, 3, 4])
            var x = ArraySlice <int> .Range(5);

            //>>> y = x[::-1]
            //>>> y
            //array([4, 3, 2, 1, 0])
            var y = x["::-1"];

            Assert.AreEqual(y, new int[] { 4, 3, 2, 1, 0 });

            //>>> y = x[::2]
            //>>> y
            //array([0, 2, 4])
            y = x["::2"];
            Assert.AreEqual(y, new int[] { 0, 2, 4 });
        }
Ejemplo n.º 11
0
        public void Slice3x2x2()
        {
            //>>> x=np.arange(12).reshape(3,2,2)
            //>>> x
            //array([[[0, 1],
            //        [ 2,  3]],
            //
            //       [[ 4,  5],
            //        [ 6,  7]],
            //
            //       [[ 8,  9],
            //        [10, 11]]])
            //>>> y1 = x[1:]
            //>>> y1
            //array([[[ 4,  5],
            //        [ 6,  7]],
            //
            //       [[ 8,  9],
            //        [10, 11]]])
            var x = ArraySlice <int> .Range(12).Reshape(3, 2, 2);

            var y1 = x["1:"];

            Assert.AreEqual(new int[] { 2, 2, 2 }, y1.Shape.Dimensions);
            Assert.AreEqual(new int[] { 4, 5, 6, 7, 8, 9, 10, 11 }, y1);

            var y1_0 = y1["0"];

            Assert.AreEqual(new int[] { 2, 2 }, y1_0.Shape.Dimensions);
            Assert.AreEqual(new int[] { 4, 5, 6, 7 }, y1_0);

            // change view
            y1.SetValues(new int[] { 0, 1 }, new int[] { 100, 101 });
            Assert.AreEqual(new int[] { 0, 1, 2, 3, 4, 5, 100, 101, 8, 9, 10, 11 }, x);
            Assert.AreEqual(new int[] { 4, 5, 100, 101, 8, 9, 10, 11 }, y1);

            var y2 = x["2:"];

            Assert.AreEqual(new int[] { 1, 2, 2 }, y2.Shape.Dimensions);
            Assert.AreEqual(new int[] { 8, 9, 10, 11 }, y2);
        }
Ejemplo n.º 12
0
        public void NonFlatTests()
        {
            var a = new ArraySlice <int>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

            //Console.WriteLine(a);
            //Assert.AreEqual("[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]", a.ToString(flat: false));
            a = ArraySlice <int> .Range(9).Reshape(3, 3);

            Console.WriteLine(a);
            Assert.AreEqual("[[0, 1, 2],\r\n" +
                            " [3, 4, 5],\r\n" +
                            " [6, 7, 8]]", a.ToString(flat: false));
            a = ArraySlice <int> .Range(8).Reshape(2, 2, 2);

            Console.WriteLine(a);
            Assert.AreEqual("[[[0, 1],\r\n" +
                            "  [2, 3]],\r\n" +
                            "\r\n" +
                            " [[4, 5],\r\n" +
                            "  [6, 7]]]", a.ToString(flat: false));
        }
Ejemplo n.º 13
0
        public void Slice2()
        {
            //>>> x = ArraySlice<int>.Range(5)
            //        >>> x
            //array([0, 1, 2, 3, 4])
            //    >>> y = x[0:5]
            //    >>> y
            //array([0, 1, 2, 3, 4])
            var x = ArraySlice <int> .Range(5);

            var y1 = x["0:5"];

            Assert.AreEqual(y1, new int[] { 0, 1, 2, 3, 4 });
            y1 = x["1:4"];
            Assert.AreEqual(y1, new int[] { 1, 2, 3 });
            //    >>> z = x[:]
            //    >>> z
            //array([0, 1, 2, 3, 4])
            var y2 = x[":"];

            Assert.AreEqual(y2, new int[] { 0, 1, 2, 3, 4 });

            // out of bounds access is handled gracefully by numpy
            //    >>> y = x[0:77]
            //    >>> y
            //array([0, 1, 2, 3, 4])
            var y3 = x["0:77"];

            Assert.AreEqual(y3, new int[] { 0, 1, 2, 3, 4 });

            //    >>> y = x[-77:]
            //    >>> y
            //array([0, 1, 2, 3, 4])
            var y4 = x["-77:"];

            Assert.AreEqual(y4, new int[] { 0, 1, 2, 3, 4 });
            var y = x["-77:77"];

            Assert.AreEqual(y, new int[] { 0, 1, 2, 3, 4 });
        }
Ejemplo n.º 14
0
        public void Slice_Step1()
        {
            //>>> x = ArraySlice<int>.Range(6)
            //>>> x
            //array([0, 1, 2, 3, 4, 5])
            //>>> y = x[::- 1]
            //>>> y
            //array([5, 4, 3, 2, 1, 0])
            //>>> y[0] = 99
            //>>> x
            //array([0, 1, 2, 3, 4, 99])
            //>>> y
            //array([99, 4, 3, 2, 1, 0])
            //>>> y = x[::-1]
            //>>> y
            //array([5, 4, 3, 2, 1, 0])
            var x = ArraySlice <int> .Range(6);

            var y = x["::-1"];

            y[0] = 99;
            Assert.AreEqual(new int[] { 0, 1, 2, 3, 4, 99 }, x);
            Assert.AreEqual(new int[] { 99, 4, 3, 2, 1, 0 }, y);
            //>>> z = y[::2]
            //>>> z
            //array([99, 3, 1])
            //>>> z[1] = 111
            //>>> x
            //array([0, 1, 2, 111, 4, 99])
            //>>> y
            //array([99, 4, 111, 2, 1, 0])
            var z = y["::2"];

            Assert.AreEqual(new int[] { 99, 3, 1 }, z);
            z[1] = 111;
            Assert.AreEqual(new int[] { 99, 111, 1 }, z);
            Assert.AreEqual(new int[] { 0, 1, 2, 111, 4, 99 }, x);
            Assert.AreEqual(new int[] { 99, 4, 111, 2, 1, 0 }, y);
        }
Ejemplo n.º 15
0
        public void FlatTests()
        {
            var a = new ArraySlice <int>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

            Console.WriteLine(a.ToString(flat: true));
            Assert.AreEqual("[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]", a.ToString(flat: true));
            a = ArraySlice <int> .Range(9).Reshape(3, 3);

            Console.WriteLine(a.ToString(flat: true));
            Assert.AreEqual("[[0, 1, 2], [3, 4, 5], [6, 7, 8]]", a.ToString(flat: true));
            a = ArraySlice <int> .Range(8).Reshape(2, 2, 2);

            Console.WriteLine(a.ToString(flat: true));
            Assert.AreEqual("[[[0, 1], [2, 3]], [[4, 5], [6, 7]]]", a.ToString(flat: true));
            a = ArraySlice <int> .Range(24).Reshape(2, 3, 4);

            Console.WriteLine(a.ToString(flat: true));
            Assert.AreEqual("[[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]", a.ToString(flat: true));
            a = ArraySlice <int> .Range(24).Reshape(4, 3, 2);

            Console.WriteLine(a.ToString(flat: true));
            Assert.AreEqual("[[[0, 1], [2, 3], [4, 5]], [[6, 7], [8, 9], [10, 11]], [[12, 13], [14, 15], [16, 17]], [[18, 19], [20, 21], [22, 23]]]", a.ToString(flat: true));
        }