code: def test_elementwise_sum_fallback(
      self, size, input_channels, batch_size, inputs, inplace, gc, dc
  ):
      op = core.CreateOperator(
          "Sum",
          ["X_{}".format(i) for i in range(inputs)],
          ["X_0" if inplace else "Y"],
          device_option=dc[1],
      )
      Xs = [
          np.random.rand(batch_size, input_channels, size, size).astype(
              np.float32
          )
          for _ in range(inputs)
      ]
  
      sum_val = Xs[0]
      workspace.FeedBlob("X_0", Xs[0], dc[0])
      for i, x in enumerate(Xs):
          if i == 0:
              continue
          sum_val += x
          workspace.FeedBlob("X_{}".format(i), x, dc[1])
  
      workspace.RunOperatorOnce(op)
      Y = workspace.FetchBlob("X_0" if inplace else "Y")
  
      if not np.allclose(sum_val, Y, atol=0.01, rtol=0.01):
          print(Y.flatten())
          print(sum_val.flatten())
          print(np.max(np.abs(Y - sum_val)))
          self.assertTrue(False)
  
file_path: pytorch/caffe2/python/ideep/elementwise_sum_op_test.py
imports: import unittest
  import hypothesis.strategies
  from hypothesis import given
  import numpy
  from caffe2.proto import caffe2_pb2
  from caffe2.python import core, workspace
  import caffe2.python.hypothesis_test_util
  import caffe2.python.ideep_test_util
label_desc: Use image node_id 2 for calling the ElementwiseSumTest obj's underlying member method code with example usage: obj.test_elementwise_sum_fallback(size, input_channels, batch_size, inputs, inplace, gc, dc) without return types