code: 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))
  
imports: import numpy
  import pytest
  from ....core import tile
  from ....core.operand import OperandStage
  from ...datasource import ones, tensor, arange
  from ..None import transpose, broadcast_to, where, argwhere, array_split, split, squeeze, result_type, repeat, copyto, isin, moveaxis, TensorCopyTo, atleast_1d, atleast_2d, atleast_3d, ravel, searchsorted, unique, sort, partition, topk, to_gpu, to_cpu
label_desc: Use image node_id 6 for calling a global function with example usage: test_broadcast_to() without return types