def test_broadcast_to(): arr = ones((10, 5), chunk_size=2) arr2 = broadcast_to(arr, (20, 10, 5)) arr, arr2 = tile(arr, arr2) assert arr2.shape == (20, 10, 5) assert len(arr2.chunks) == len(arr.chunks) assert arr2.chunks[0].shape == (20, 2, 2) arr = ones((10, 5, 1), chunk_size=2) arr3 = broadcast_to(arr, (5, 10, 5, 6)) arr, arr3 = tile(arr, arr3) assert arr3.shape == (5, 10, 5, 6) assert len(arr3.chunks) == len(arr.chunks) assert arr3.nsplits == ((5, ), (2, 2, 2, 2, 2), (2, 2, 1), (6, )) assert arr3.chunks[0].shape == (5, 2, 2, 6) arr = ones((10, 1), chunk_size=2) arr4 = broadcast_to(arr, (20, 10, 5)) arr, arr4 = tile(arr, arr4) assert arr4.shape == (20, 10, 5) assert len(arr4.chunks) == len(arr.chunks) assert arr4.chunks[0].shape == (20, 2, 5) with pytest.raises(ValueError): broadcast_to(arr, (10, )) with pytest.raises(ValueError): broadcast_to(arr, (5, 1)) arr = ones((4, 5), chunk_size=2) with pytest.raises((ValueError)): broadcast_to(arr[arr < 2], (3, 20))
def testBroadcastToExecution(self): raw = np.random.random((10, 5, 1)) arr = tensor(raw, chunk_size=2) arr2 = broadcast_to(arr, (5, 10, 5, 6)) res = self.executor.execute_tensor(arr2, concat=True)[0] np.testing.assert_array_equal(res, np.broadcast_to(raw, (5, 10, 5, 6))) # test chunk with unknown shape arr1 = mt.random.rand(3, 4, chunk_size=2) arr2 = mt.random.permutation(arr1) arr3 = broadcast_to(arr2, (2, 3, 4)) res = self.executor.execute_tensor(arr3, concat=True)[0] self.assertEqual(res.shape, (2, 3, 4))
def testBroadcastToExecution(self): raw = np.random.random((10, 5, 1)) arr = tensor(raw, chunk_size=2) arr2 = broadcast_to(arr, (5, 10, 5, 6)) res = self.executor.execute_tensor(arr2, concat=True) self.assertTrue(np.array_equal(res[0], np.broadcast_to(raw, (5, 10, 5, 6))))
def testBroadcastTo(self): arr = ones((10, 5), chunk_size=2) arr2 = broadcast_to(arr, (20, 10, 5)) arr2.tiles() self.assertEqual(arr2.shape, (20, 10, 5)) self.assertEqual(len(arr2.chunks), len(arr.chunks)) self.assertEqual(arr2.chunks[0].shape, (20, 2, 2)) arr = ones((10, 5, 1), chunk_size=2) arr3 = broadcast_to(arr, (5, 10, 5, 6)) arr3.tiles() self.assertEqual(arr3.shape, (5, 10, 5, 6)) self.assertEqual(len(arr3.chunks), len(arr.chunks)) self.assertEqual(arr3.nsplits, ((5, ), (2, 2, 2, 2, 2), (2, 2, 1), (6, ))) self.assertEqual(arr3.chunks[0].shape, (5, 2, 2, 6)) arr = ones((10, 1), chunk_size=2) arr4 = broadcast_to(arr, (20, 10, 5)) arr4.tiles() self.assertEqual(arr4.shape, (20, 10, 5)) self.assertEqual(len(arr4.chunks), len(arr.chunks)) self.assertEqual(arr4.chunks[0].shape, (20, 2, 5)) with self.assertRaises(ValueError): broadcast_to(arr, (10, )) with self.assertRaises(ValueError): broadcast_to(arr, (5, 1))