def testBroadcastToExecution(self): raw = np.random.random((10, 5, 1)) arr = tensor(raw, chunks=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))