def testTransposeExecution(self): raw = np.random.random((11, 8, 5)) arr = tensor(raw, chunk_size=3) arr2 = transpose(arr) res = self.executor.execute_tensor(arr2, concat=True) np.testing.assert_array_equal(res[0], raw.T) arr3 = transpose(arr, axes=(-2, -1, -3)) res = self.executor.execute_tensor(arr3, concat=True) np.testing.assert_array_equal(res[0], raw.transpose(1, 2, 0)) raw = sps.random(11, 8) arr = tensor(raw, chunk_size=3) arr2 = transpose(arr) self.assertTrue(arr2.issparse()) res = self.executor.execute_tensor(arr2, concat=True) np.testing.assert_array_equal(res[0].toarray(), raw.T.toarray()) # test order raw = np.asfortranarray(np.random.random((11, 8, 5))) arr = tensor(raw, chunk_size=3) arr2 = transpose(arr) res = self.executor.execute_tensor(arr2, concat=True)[0] expected = np.transpose(raw).copy(order='A') np.testing.assert_array_equal(res, expected) self.assertEqual(res.flags['C_CONTIGUOUS'], expected.flags['C_CONTIGUOUS']) self.assertEqual(res.flags['F_CONTIGUOUS'], expected.flags['F_CONTIGUOUS']) arr = tensor(raw, chunk_size=3) arr2 = transpose(arr, (1, 2, 0)) res = self.executor.execute_tensor(arr2, concat=True)[0] expected = np.transpose(raw, (1, 2, 0)).copy(order='A') np.testing.assert_array_equal(res, expected) self.assertEqual(res.flags['C_CONTIGUOUS'], expected.flags['C_CONTIGUOUS']) self.assertEqual(res.flags['F_CONTIGUOUS'], expected.flags['F_CONTIGUOUS'])
def test_create_view(): arr = ones((10, 20, 30), chunk_size=[4, 3, 5]) arr2 = transpose(arr) assert arr2.op.create_view is True arr3 = transpose(arr) assert arr3.op.create_view is True arr4 = arr.swapaxes(0, 1) assert arr4.op.create_view is True arr5 = moveaxis(arr, 1, 0) assert arr5.op.create_view is True arr6 = atleast_1d(1) assert arr6.op.create_view is True arr7 = atleast_2d([1, 1]) assert arr7.op.create_view is True arr8 = atleast_3d([1, 1]) assert arr8.op.create_view is True arr9 = arr[:3, [1, 2, 3]] # no view cuz of fancy indexing assert arr9.op.create_view is False arr9[0][0][0] = 100 assert arr9.op.create_view is False arr10 = arr[:3, None, :5] assert arr10.op.create_view is True arr10[0][0][0] = 100 assert arr10.op.create_view is False data = np.array([[[0], [1], [2]]]) x = tensor(data) t = squeeze(x) assert t.op.create_view is True y = x.reshape(3) assert y.op.create_view is True
def testCreateView(self): arr = ones((10, 20, 30), chunk_size=[4, 3, 5]) arr2 = transpose(arr) self.assertTrue(arr2.op.create_view) arr3 = transpose(arr) self.assertTrue(arr3.op.create_view) arr4 = arr.swapaxes(0, 1) self.assertTrue(arr4.op.create_view) arr5 = moveaxis(arr, 1, 0) self.assertTrue(arr5.op.create_view) arr6 = atleast_1d(1) self.assertTrue(arr6.op.create_view) arr7 = atleast_2d([1, 1]) self.assertTrue(arr7.op.create_view) arr8 = atleast_3d([1, 1]) self.assertTrue(arr8.op.create_view) arr9 = arr[:3, [1, 2, 3]] # no view cuz of fancy indexing self.assertFalse(arr9.op.create_view) arr9[0][0][0] = 100 self.assertFalse(arr9.op.create_view) arr10 = arr[:3, None, :5] self.assertTrue(arr10.op.create_view) arr10[0][0][0] = 100 self.assertFalse(arr10.op.create_view) data = np.array([[[0], [1], [2]]]) x = tensor(data) t = squeeze(x) self.assertTrue(t.op.create_view) y = x.reshape(3) self.assertTrue(y.op.create_view)
def test_transpose(): arr = ones((10, 20, 30), chunk_size=[4, 3, 5]) arr2 = transpose(arr) arr2 = tile(arr2) assert arr2.shape == (30, 20, 10) assert len(arr2.chunks) == 126 assert arr2.chunks[0].shape == (5, 3, 4) assert arr2.chunks[-1].shape == (5, 2, 2) with pytest.raises(ValueError): transpose(arr, axes=(1, 0)) arr3 = transpose(arr, (-2, 2, 0)) arr3 = tile(arr3) assert arr3.shape == (20, 30, 10) assert len(arr3.chunks) == 126 assert arr3.chunks[0].shape == (3, 5, 4) assert arr3.chunks[-1].shape == (2, 5, 2) arr4 = arr.transpose(-2, 2, 0) arr4 = tile(arr4) assert arr4.shape == (20, 30, 10) assert len(arr4.chunks) == 126 assert arr4.chunks[0].shape == (3, 5, 4) assert arr4.chunks[-1].shape == (2, 5, 2) arr5 = arr.T arr5 = tile(arr5) assert arr5.shape == (30, 20, 10) assert len(arr5.chunks) == 126 assert arr5.chunks[0].shape == (5, 3, 4) assert arr5.chunks[-1].shape == (5, 2, 2)
def testTranspose(self): arr = ones((10, 20, 30), chunk_size=[4, 3, 5]) arr2 = transpose(arr) arr2 = arr2.tiles() self.assertEqual(arr2.shape, (30, 20, 10)) self.assertEqual(len(arr2.chunks), 126) self.assertEqual(arr2.chunks[0].shape, (5, 3, 4)) self.assertEqual(arr2.chunks[-1].shape, (5, 2, 2)) with self.assertRaises(ValueError): transpose(arr, axes=(1, 0)) arr3 = transpose(arr, (-2, 2, 0)) arr3 = arr3.tiles() self.assertEqual(arr3.shape, (20, 30, 10)) self.assertEqual(len(arr3.chunks), 126) self.assertEqual(arr3.chunks[0].shape, (3, 5, 4)) self.assertEqual(arr3.chunks[-1].shape, (2, 5, 2)) arr4 = arr.transpose(-2, 2, 0) arr4 = arr4.tiles() self.assertEqual(arr4.shape, (20, 30, 10)) self.assertEqual(len(arr4.chunks), 126) self.assertEqual(arr4.chunks[0].shape, (3, 5, 4)) self.assertEqual(arr4.chunks[-1].shape, (2, 5, 2)) arr5 = arr.T arr5 = arr5.tiles() self.assertEqual(arr5.shape, (30, 20, 10)) self.assertEqual(len(arr5.chunks), 126) self.assertEqual(arr5.chunks[0].shape, (5, 3, 4)) self.assertEqual(arr5.chunks[-1].shape, (5, 2, 2))
def testTransposeExecution(self): raw = np.random.random((11, 8, 5)) arr = tensor(raw, chunk_size=3) arr2 = transpose(arr) res = self.executor.execute_tensor(arr2, concat=True) self.assertTrue(np.array_equal(res[0], raw.T)) arr3 = transpose(arr, axes=(-2, -1, -3)) res = self.executor.execute_tensor(arr3, concat=True) self.assertTrue(np.array_equal(res[0], raw.transpose(1, 2, 0))) raw = sps.random(11, 8) arr = tensor(raw, chunk_size=3) arr2 = transpose(arr) self.assertTrue(arr2.issparse()) res = self.executor.execute_tensor(arr2, concat=True) self.assertTrue(np.array_equal(res[0].toarray(), raw.T.toarray()))