Esempio n. 1
0
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))
Esempio n. 2
0
    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))
Esempio n. 3
0
    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))))
Esempio n. 4
0
    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))