code: def test_copyto():
      a = ones((10, 20), chunk_size=3)
      b = ones(10, chunk_size=4)
  
      with pytest.raises(ValueError):
          copyto(a, b)
  
      tp = type(a.op)
      b = ones(20, chunk_size=4)
      copyto(a, b)
  
      assert isinstance(a.op, TensorCopyTo)
      assert a.inputs[0] is b.data
      assert isinstance(a.inputs[1].op, tp)
  
      a = tile(a)
  
      assert isinstance(a.chunks[0].op, TensorCopyTo)
      assert len(a.chunks[0].inputs) == 2
  
      a = ones((10, 20), chunk_size=3, dtype="i4")
      b = ones(20, chunk_size=4, dtype="f8")
  
      with pytest.raises(TypeError):
          copyto(a, b)
  
      b = ones(20, chunk_size=4, dtype="i4")
      copyto(a, b, where=b > 0)
  
      assert a.op.where is not None
  
      a = tile(a)
  
      assert isinstance(a.chunks[0].op, TensorCopyTo)
      assert len(a.chunks[0].inputs) == 3
  
      with pytest.raises(ValueError):
          copyto(a, a, where=np.ones(30, dtype="?"))
  
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 2 for calling a global function with example usage: test_copyto() without return types