code: def test_basic(self):
      dts = list(
          zip(
              ["i1", "i2", "i4", "i8", "u1", "u2", "u4", "u8"],
              [
                  np.int8,
                  np.int16,
                  np.int32,
                  np.int64,
                  np.uint8,
              ],
          )
      )
      for dt1, dt2 in dts:
          for attr in ("bits", "min", "max"):
              assert_equal(
                  getattr(iinfo(dt1), attr),
                  getattr(iinfo(dt2), attr),
                  attr,
              )
      with assert_raises((TypeError, ValueError)):
          iinfo("f4")
  
imports: import functools
  import warnings
  from unittest import skipIf
  import numpy
  from pytest import raises
  from torch.testing._internal.common_utils import run_tests, TEST_WITH_TORCHDYNAMO, TestCase, xpassIfTorchDynamo
label_desc: Use image node_id 1 for calling the TestIinfo obj's underlying member method code with example usage: obj.test_basic() without return types