code: def test_conv2d_api(
      self,
      batch_size,
      in_channels_per_group,
      H,
      W,
      out_channels_per_group,
      groups,
      kernel_h,
      kernel_w,
      stride_h,
      stride_w,
      pad_h,
      pad_w,
      dilation,
      X_scale,
      X_zero_point,
      W_scale,
      W_zero_point,
      Y_scale,
      Y_zero_point,
      use_bias,
      use_channelwise,
      qengine,
  ):
      # Tests the correctness of the conv2d function.
  
      if qengine not in torch.backends.quantized.supported_engines:
          return
      if qengine == "qnnpack":
          if IS_PPC or TEST_WITH_UBSAN:
              return
  
      input_feature_map_size = (H, W)
      kernel_size = (kernel_h, kernel_w)
      stride = (stride_h, stride_w)
      padding = (pad_h, pad_w)
      dilation = (dilation, dilation)
  
      with override_quantized_engine(qengine):
          qconv_fn = qF.conv2d
          conv_fn = F.conv2d
          self._test_conv_api_impl(
              qconv_fn,
              conv_fn,
              batch_size,
              in_channels_per_group,
              input_feature_map_size,
              out_channels_per_group,
              groups,
              kernel_size,
              stride,
              padding,
              dilation,
              X_scale,
              X_zero_point,
              W_scale,
              W_zero_point,
              Y_scale,
              Y_zero_point,
              use_bias,
              use_channelwise,
          )
  
file_path: pytorch/test/quantization/core/test_quantized_functional.py
imports: import torch
  import torch.ao.nn.quantized.functional
  import torch.nn.functional
  import numpy
  from hypothesis import assume, given
  from hypothesis import strategies
  from torch.testing._internal.common_quantization import QuantizationTestCase, _make_conv_test_input
  from torch.testing._internal.common_quantized import override_quantized_engine
  from torch.testing._internal.common_utils import IS_PPC, TEST_WITH_UBSAN
label_desc: Use image node_id 4 for calling the TestQuantizedFunctionalOps obj's underlying member method code with example usage: obj.test_conv2d_api(batch_size, in_channels_per_group, H, W, out_channels_per_group, groups, kernel_h, kernel_w, stride_h, stride_w, pad_h, pad_w, dilation, X_scale, X_zero_point, W_scale, W_zero_point, Y_scale, Y_zero_point, use_bias, use_channelwise, qengine) without return types