code: def testReduceOnInt8(self):
      a = constant_op.constant(
          np.array([[1, 2, 3, 4], [5, 6, 7, 8]]), dtype=dtypes.int8
      )
  
      expected_result = math_ops.reduce_sum(a)
  
      sharded_a = api.relayout(
          a, self.first_dimension_sharded_layout_2d
      )
      dtensor_result = math_ops.reduce_sum(sharded_a)
  
      self.assertDTensorEqual(
          expected_result, self.scalar_layout, dtensor_result
      )
  
imports: import os
  from absl.testing import parameterized
  import numpy
  from tensorflow.dtensor.python import api
  from tensorflow.dtensor.python import config
  from tensorflow.dtensor.python import d_variable
  from tensorflow.dtensor.python import dtensor_device
  from tensorflow.dtensor.python import layout
  from tensorflow.dtensor.python.tests import test_backend_util
  from tensorflow.dtensor.python.tests import test_util
  from tensorflow.python.eager.polymorphic_function import polymorphic_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_array_ops
  from tensorflow.python.ops import gen_math_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 4 for calling the CollectiveTest obj's underlying member method code with example usage: obj.testReduceOnInt8() without return types