code: def testCopyToDeviceHostOptimizations(self):
      host_dataset = dataset_ops.Dataset.range(10)
      host_dataset = host_dataset.apply(
          testing.assert_next(["MapAndBatch"])
      )
      host_dataset = host_dataset.map(lambda x: x * x).batch(10)
      device_dataset = host_dataset.apply(
          prefetching_ops.copy_to_device("/cpu:1")
      )
  
      with ops.device("/cpu:1"):
          iterator = dataset_ops.make_one_shot_iterator(device_dataset)
          next_element = iterator.get_next()
  
      worker_config = config_pb2.ConfigProto(device_count={"CPU": 2})
      with self.test_session(config=worker_config):
          self.assertAllEqual(
              [x * x for x in range(10)], self.evaluate(next_element)
          )
          with self.assertRaises(errors.OutOfRangeError):
              self.evaluate(next_element)
  
imports: from absl.testing import parameterized
  from tensorflow.core.protobuf import config_pb2
  from tensorflow.python.data.experimental.ops import prefetching_ops
  from tensorflow.python.data.experimental.ops import testing
  from tensorflow.python.data.kernel_tests import test_base
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.data.ops import iterator_ops
  from tensorflow.python.data.ops import options
  from tensorflow.python.data.util import structure
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import math_ops
  from tensorflow.python.platform import test
  from tensorflow.python.util import compat
label_desc: Use image node_id 2 for calling the CopyToDeviceTest obj's underlying member method code with example usage: obj.testCopyToDeviceHostOptimizations() without return types