code: def test_custom_rules_ints(self, device, dtype, op):
      # This is done because opinfos currently only runs on floats.
      # Return fn, inputs_fn for all
      if dtype == torch.float32:
          dtype = torch.int32
      else:
          dtype = torch.int64
  
      # Because ints are not always implemented, we need to allow for eager to fail
      self.custom_rules_test_base(
          device, dtype, op, allow_eager_fail=True
      )
  
imports: from itertools import product
  from typing import Tuple
  from unittest.case import expectedFailure
  import torch
  from torch import complex32, float32, float64, int32, int64
  from torch.jit._passes import _property_propagation
  from torch.testing._internal.common_methods_invocations import SampleInput, sample_inputs_adaptive_avg_pool2d, sample_inputs_conv2d
  from torch.testing._internal.common_utils import set_default_dtype, first_sample
  from torch.testing._internal.jit_utils import JitTestCase
  from torch.testing._internal.jit_metaprogramming_utils import create_traced_fn
  from torch.testing._internal.common_device_type import ops, instantiate_device_type_tests
  from torch.testing._internal.common_methods_invocations import op_db
label_desc: Use image node_id 5 for calling the TestDtypeCustomRules obj's underlying member method code with example usage: obj.test_custom_rules_ints(device, dtype, op) without return types