Exemplo n.º 1
0
 def test_reshape_3d1d(self):
     nparr = np.empty((3, 4, 5))
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     expect = nparr.reshape(3 * 4 * 5)
     got = arr.reshape(3 * 4 * 5)[0]
     self.assertEqual(got.shape, expect.shape)
     self.assertEqual(got.strides, expect.strides)
Exemplo n.º 2
0
 def test_squeeze_invalid_axis(self):
     nparr = np.empty((1, 2, 1, 4, 1, 3))
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     with self.assertRaises(ValueError):
         arr.squeeze(axis=1)
     with self.assertRaises(ValueError):
         arr.squeeze(axis=(2, 3))
Exemplo n.º 3
0
    def test_extent_iter_2d(self):
        nparr = np.empty((4, 5))
        arr = Array.from_desc(0, nparr.shape, nparr.strides,
                              nparr.dtype.itemsize)
        [ext] = list(arr.iter_contiguous_extent())
        self.assertEqual(ext, arr.extent)

        self.assertEqual(len(list(arr[::2].iter_contiguous_extent())), 2)
Exemplo n.º 4
0
    def test_extent_iter_2d(self):
        nparr = np.empty((4, 5))
        arr = Array.from_desc(0, nparr.shape, nparr.strides,
                              nparr.dtype.itemsize)
        [ext] = list(arr.iter_contiguous_extent())
        self.assertEqual(ext, arr.extent)

        self.assertEqual(len(list(arr[::2].iter_contiguous_extent())), 2)
Exemplo n.º 5
0
 def test_squeeze_invalid_axis(self):
     nparr = np.empty((1, 2, 1, 4, 1, 3))
     arr = Array.from_desc(
         0, nparr.shape, nparr.strides, nparr.dtype.itemsize
     )
     with self.assertRaises(ValueError):
         arr.squeeze(axis=1)
     with self.assertRaises(ValueError):
         arr.squeeze(axis=(2, 3))
Exemplo n.º 6
0
 def test_strided_3d(self):
     nparr = np.empty((4, 5, 6))
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     xx = -2, -1, 1, 2
     for a, b, c in itertools.product(xx, xx, xx):
         expect = nparr[::a, ::b, ::c]
         got = arr[::a, ::b, ::c]
         self.assertSameContig(got, expect)
         self.assertEqual(got.shape, expect.shape)
         self.assertEqual(got.strides, expect.strides)
Exemplo n.º 7
0
    def test_for_loop(self):
        # for #4201
        N = 5
        nparr = np.empty(N)
        arr = Array.from_desc(0, nparr.shape, nparr.strides,
                              nparr.dtype.itemsize)

        x = 0  # just a placeholder
        # this loop should not raise AssertionError
        for val in arr:
            x = val
Exemplo n.º 8
0
 def test_slice2_1d(self):
     nparr = np.empty(4)
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     xx = -2, -1, 0, 1, 2
     for x, y in itertools.product(xx, xx):
         expect = nparr[x:y]
         got = arr[x:y]
         self.assertSameContig(got, expect)
         self.assertEqual(got.shape, expect.shape)
         self.assertEqual(got.strides, expect.strides)
Exemplo n.º 9
0
 def test_slice2_1d(self):
     nparr = np.empty(4)
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     xx = -2, -1, 0, 1, 2
     for x, y in itertools.product(xx, xx):
         expect = nparr[x:y]
         got = arr[x:y]
         self.assertSameContig(got, expect)
         self.assertEqual(got.shape, expect.shape)
         self.assertEqual(got.strides, expect.strides)
Exemplo n.º 10
0
 def test_slice1_1d(self):
     nparr = np.empty(4)
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     xx = -2, -1, 0, 1, 2
     for x in xx:
         expect = nparr[:x]
         got = arr[:x]
         self.assertSameContig(got, expect)
         self.assertEqual(got.shape, expect.shape)
         self.assertEqual(got.strides, expect.strides)
Exemplo n.º 11
0
 def test_slice1_1d(self):
     nparr = np.empty(4)
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     xx = -2, -1, 0, 1, 2
     for x in xx:
         expect = nparr[:x]
         got = arr[:x]
         self.assertSameContig(got, expect)
         self.assertEqual(got.shape, expect.shape)
         self.assertEqual(got.strides, expect.strides)
Exemplo n.º 12
0
 def test_strided_3d(self):
     nparr = np.empty((4, 5, 6))
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     xx = -2, -1, 1, 2
     for a, b, c in itertools.product(xx, xx, xx):
         expect = nparr[::a, ::b, ::c]
         got = arr[::a, ::b, ::c]
         self.assertSameContig(got, expect)
         self.assertEqual(got.shape, expect.shape)
         self.assertEqual(got.strides, expect.strides)
Exemplo n.º 13
0
    def test_squeeze(self):
        nparr = np.empty((1, 2, 1, 4, 1, 3))
        arr = Array.from_desc(0, nparr.shape, nparr.strides,
                              nparr.dtype.itemsize)

        def _assert_equal_shape_strides(arr1, arr2):
            self.assertEqual(arr1.shape, arr2.shape)
            self.assertEqual(arr1.strides, arr2.strides)

        _assert_equal_shape_strides(arr, nparr)
        _assert_equal_shape_strides(arr.squeeze()[0], nparr.squeeze())
        for axis in (0, 2, 4, (0, 2), (0, 4), (2, 4), (0, 2, 4)):
            _assert_equal_shape_strides(
                arr.squeeze(axis=axis)[0], nparr.squeeze(axis=axis))
Exemplo n.º 14
0
 def test_squeeze(self):
     nparr = np.empty((1, 2, 1, 4, 1, 3))
     arr = Array.from_desc(
         0, nparr.shape, nparr.strides, nparr.dtype.itemsize
     )
     def _assert_equal_shape_strides(arr1, arr2):
         self.assertEqual(arr1.shape, arr2.shape)
         self.assertEqual(arr1.strides, arr2.strides)
     _assert_equal_shape_strides(arr, nparr)
     _assert_equal_shape_strides(arr.squeeze()[0], nparr.squeeze())
     for axis in (0, 2, 4, (0, 2), (0, 4), (2, 4), (0, 2, 4)):
         _assert_equal_shape_strides(
             arr.squeeze(axis=axis)[0], nparr.squeeze(axis=axis)
         )
Exemplo n.º 15
0
    def test_slice2_2d(self):
        nparr = np.empty((4, 5))
        arr = Array.from_desc(0, nparr.shape, nparr.strides,
                              nparr.dtype.itemsize)
        xx = -2, 0, 2
        for s, t, u, v in itertools.product(xx, xx, xx, xx):
            expect = nparr[s:t, u:v]
            got = arr[s:t, u:v]
            self.assertSameContig(got, expect)
            self.assertEqual(got.shape, expect.shape)
            self.assertEqual(got.strides, expect.strides)

        for x, y in itertools.product(xx, xx):
            expect = nparr[s:t, u:v]
            got = arr[s:t, u:v]
            self.assertSameContig(got, expect)
            self.assertEqual(got.shape, expect.shape)
            self.assertEqual(got.strides, expect.strides)
Exemplo n.º 16
0
    def test_slice1_2d(self):
        nparr = np.empty((4, 5))
        arr = Array.from_desc(0, nparr.shape, nparr.strides,
                              nparr.dtype.itemsize)
        xx = -2, 0, 2
        for x in xx:
            expect = nparr[:x]
            got = arr[:x]
            self.assertEqual(got.shape, expect.shape)
            self.assertEqual(got.strides, expect.strides)
            self.assertSameContig(got, expect)

        for x, y in itertools.product(xx, xx):
            expect = nparr[:x, :y]
            got = arr[:x, :y]
            self.assertEqual(got.shape, expect.shape)
            self.assertEqual(got.strides, expect.strides)
            self.assertSameContig(got, expect)
Exemplo n.º 17
0
 def test_extent_2d(self):
     nparr = np.empty((4, 5))
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     s, e = arr.extent
     self.assertEqual(e - s, nparr.size * nparr.dtype.itemsize)
Exemplo n.º 18
0
 def test_extent_2d(self):
     nparr = np.empty((4, 5))
     arr = Array.from_desc(0, nparr.shape, nparr.strides,
                           nparr.dtype.itemsize)
     s, e = arr.extent
     self.assertEqual(e - s, nparr.size * nparr.dtype.itemsize)