code: def assert_integer_form(
      x,
      summarize=None,
      message=None,
      atol=None,
      rtol=None,
      name="assert_integer_form",
  ):
      """Assert that x has integer components (or floats near integers).
  
      Args:
        x: Floating-point or integer `Tensor`.
        summarize: Print this many entries of each tensor.
        message: A string to prefix to the default message.
        atol: Tensor. Same dtype as, and broadcastable to, x. The absolute
          tolerance. Default is 10 * eps.
        rtol: Tensor. Same dtype as, and broadcastable to, x. The relative
          tolerance. Default is 10 * eps.
        name: A name for this operation (optional).
  
      Returns:
        Op raising `InvalidArgumentError` if `round(x) != x` within tolerance.
      """
      with tf.name_scope(name):
          x = tf.convert_to_tensor(x, name="x")
          if dtype_util.is_integer(x.dtype):
              return tf.no_op()
          message = message or "{} has non-integer components".format(x)
          return assert_util.assert_near(
              x,
              tf.round(x),
              atol=atol,
              rtol=rtol,
              summarize=summarize,
              message=message,
              name=name,
          )
  
imports: import functools
  import hashlib
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import reparameterization
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow.python.util import tf_inspect
label_desc: Use image node_id 13 for calling a global function with example usage: assert_integer_form(x, summarize, message, atol, rtol, name) and returns: assert_util, tf