code: def test_numpy_copyto(
      copyto_args,
      backend_fw,
      frontend,
  ):
      _, xs, casting, where = copyto_args
      if isinstance(where, (list, tuple)):
          where = where[0]
  
      with BackendHandler.update_backend(backend_fw) as ivy_backend:
          src_ivy = ivy_backend.functional.frontends.numpy.array(xs[0])
          dst_ivy = ivy_backend.functional.frontends.numpy.array(xs[1])
          ivy_backend.functional.frontends.numpy.copyto(
              dst_ivy, src_ivy, where=where, casting=casting
          )
  
          src_np = np.array(xs[0])
          dst_np = np.array(xs[1])
          np.copyto(dst_np, src_np, where=where, casting=casting)
  
          assert dst_np.shape == dst_ivy.shape
          # value test
          dst_ = ivy_backend.to_numpy(dst_ivy.ivy_array)
          helpers.assert_all_close(
              dst_,
              dst_np,
              backend=backend_fw,
              ground_truth_backend=frontend,
          )
          assert id(src_ivy) != id(dst_ivy)
  
file_path: ivy/ivy_tests/test_ivy/test_frontends/test_numpy/test_manipulation_routines/test_basic_operations.py
imports: from hypothesis import strategies
  import numpy
  import ivy_tests.test_ivy.helpers
  import ivy_tests.test_ivy.test_frontends.test_numpy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test, BackendHandler
label_desc: Use image node_id 2 for calling a global function with example usage: test_numpy_copyto(copyto_args, backend_fw, frontend) without return types