code: def test_integers(self):
      # check that equal values hash equal
  
      # exact integers
      for i in range(-1000, 1000):
          self.check_equal_hash(i, float(i))
          self.check_equal_hash(i, D(i))
          self.check_equal_hash(i, F(i))
  
      # the current hash is based on reduction modulo 2**n-1 for some
      # n, so pay special attention to numbers of the form 2**n and 2**n-1.
      for i in range(100):
          n = 2**i - 1
          if n == int(float(n)):
              self.check_equal_hash(n, float(n))
              self.check_equal_hash(-n, -float(n))
          self.check_equal_hash(n, D(n))
          self.check_equal_hash(n, F(n))
          self.check_equal_hash(-n, D(-n))
          self.check_equal_hash(-n, F(-n))
  
          n = 2**i
          self.check_equal_hash(n, float(n))
          self.check_equal_hash(-n, -float(n))
          self.check_equal_hash(n, D(n))
          self.check_equal_hash(n, F(n))
          self.check_equal_hash(-n, D(-n))
          self.check_equal_hash(-n, F(-n))
  
      # random values of various sizes
      for _ in range(1000):
          e = random.randrange(300)
          n = random.randrange(-(10**e), 10**e)
          self.check_equal_hash(n, D(n))
          self.check_equal_hash(n, F(n))
          if n == int(float(n)):
              self.check_equal_hash(n, float(n))
  
imports: import unittest
  import random
  import math
  import sys
  import operator
  from decimal import Decimal
  from fractions import Fraction
label_desc: Use image node_id 3 for calling the HashTest obj's underlying member method code with example usage: obj.test_integers() without return types