Beispiel #1
0
        //[TestMethod]
        public void CheckChangeTensorLayout2D()
        {
            var strg2DCpy = (NDStorage)strg2D.Clone();

            Assert.IsTrue(Enumerable.SequenceEqual(strg2DCpy.Shape.Dimensions, new int[] { 3, 3 }));
            Assert.IsTrue(Enumerable.SequenceEqual(strg2DCpy.GetData <Int64>(), new Int64[] { 0, 3, 6, 1, 4, 7, 2, 5, 8 }));

            Assert.IsTrue(Enumerable.SequenceEqual(strg2DCpy.Shape.Dimensions, new int[] { 3, 3 }));
            Assert.IsTrue(Enumerable.SequenceEqual(strg2DCpy.GetData <Int64>(), strg2D.GetData <Int64>()));

            strg2DCpy = (NDStorage)strg2DNonFull.Clone();

            Assert.IsTrue(Enumerable.SequenceEqual(strg2DCpy.Shape.Dimensions, new int[] { 5, 2 }));
            Assert.IsTrue(Enumerable.SequenceEqual(strg2DCpy.GetData <Int64>(), new Int64[] { 0, 5, 1, 6, 2, 7, 3, 8, 4, 9 }));

            Assert.IsTrue(Enumerable.SequenceEqual(strg2DCpy.Shape.Dimensions, new int[] { 5, 2 }));
            Assert.IsTrue(Enumerable.SequenceEqual(strg2DCpy.GetData <Int64>(), strg2DNonFull.GetData <Int64>()));

            strg2DCpy = new NDStorage(typeof(Int64));
            strg2DCpy.Allocate(new Shape(5, 2));

            strg2DCpy.SetData(strg2DNonFull.GetData());

            Assert.IsTrue(Enumerable.SequenceEqual(strg2DCpy.GetData <Int64>(), new Int64[] { 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 }));
        }
Beispiel #2
0
        public void CloneCheck()
        {
            var strg1DCpy = (NDStorage)strg1D.Clone();

            Assert.IsTrue(strg1DCpy.DType == strg1DCpy.GetData().GetType().GetElementType());
            Assert.IsFalse(strg1D.GetData() == strg1DCpy.GetData());
            Assert.IsTrue(strg1D.GetData().Length == strg1DCpy.GetData().Length);

            Assert.IsTrue(Enumerable.SequenceEqual(strg1DCpy.GetData <double>(), strg1D.GetData <double>()));
        }
Beispiel #3
0
        public void CheckChangeTensorLayout3D()
        {
            var strg3DCpy = (NDStorage)strg3D.Clone();

            Assert.IsTrue(strg3DCpy.TensorLayout == 1);

            strg3DCpy.ChangeTensorLayout(2);

            Assert.IsTrue(strg3DCpy.TensorLayout == 2);
            Assert.IsTrue(strg3DCpy.Shape.TensorLayout == 2);

            Assert.IsTrue(Enumerable.SequenceEqual(strg3DCpy.Shape.Dimensions, new int[] { 2, 2, 2 }));
            Assert.IsTrue(Enumerable.SequenceEqual(strg3DCpy.GetData <Complex>(), new Complex[] { 1, 5, 3, 7, 2, 6, 4, 8 }));

            strg3DCpy.ChangeTensorLayout(1);

            Assert.IsTrue(strg3DCpy.TensorLayout == 1);
            Assert.IsTrue(strg3DCpy.Shape.TensorLayout == 1);

            Assert.IsTrue(Enumerable.SequenceEqual(strg3DCpy.Shape.Dimensions, new int[] { 2, 2, 2 }));
            Assert.IsTrue(Enumerable.SequenceEqual(strg3DCpy.GetData <Complex>(), strg3D.GetData <Complex>()));

            strg3DCpy = (NDStorage)strg3DNonFull.Clone();

            Assert.IsTrue(strg3DCpy.TensorLayout == 1);

            strg3DCpy.ChangeTensorLayout(2);

            Assert.IsTrue(strg3DCpy.TensorLayout == 2);
            Assert.IsTrue(strg3DCpy.Shape.TensorLayout == 2);

            var expectedValues = new Complex[] { 1, 7, 13, 19, 3, 9, 15, 21, 5, 11, 17, 23, 2, 8, 14, 20, 4, 10, 16, 22, 6, 12, 18, 24 };

            Assert.IsTrue(Enumerable.SequenceEqual(strg3DCpy.Shape.Dimensions, new int[] { 2, 3, 4 }));
            Assert.IsTrue(Enumerable.SequenceEqual(strg3DCpy.GetData <Complex>(), expectedValues));

            strg3DCpy.ChangeTensorLayout(1);

            Assert.IsTrue(strg3DCpy.TensorLayout == 1);
            Assert.IsTrue(strg3DCpy.Shape.TensorLayout == 1);

            Assert.IsTrue(Enumerable.SequenceEqual(strg3DCpy.Shape.Dimensions, new int[] { 2, 3, 4 }));
            Assert.IsTrue(Enumerable.SequenceEqual(strg3DCpy.GetData <Complex>(), strg3DNonFull.GetData <Complex>()));
        }