def METHOD_NAME(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)