code: def test_gather_padding(
      self, start_pad_width, end_pad_width, args, gc, dc
  ):
      lengths, data, start_padding, end_padding = args
      padded_data, padded_lengths = _add_padding_ref(
          start_pad_width,
          end_pad_width,
          True,
          data,
          lengths,
          start_padding,
          end_padding,
      )
      op = core.CreateOperator(
          "GatherPadding",
          ["data", "lengths"],
          ["start_padding", "end_padding"],
          padding_width=start_pad_width,
          end_padding_width=end_pad_width,
      )
      self.assertReferenceChecks(
          device_option=gc,
          op=op,
          inputs=[padded_data, padded_lengths],
          reference=partial(
              _gather_padding_ref, start_pad_width, end_pad_width
          ),
      )
  
imports: from caffe2.python import core
  from functools import partial
  from hypothesis import given, settings
  import caffe2.python.hypothesis_test_util
  import caffe2.python.serialized_test.serialized_test_util
  import hypothesis.strategies
  import numpy
  import unittest
  from caffe2.python import workspace
label_desc: Use image node_id 10 for calling the TestSequenceOps obj's underlying member method code with example usage: obj.test_gather_padding(start_pad_width, end_pad_width, args, gc, dc) without return types