code: def test_works_correctly(
      self,
      input_size,
      output_size,
      kernel_batch_shape,
      input_batch_shape,
  ):
      affine = tfn.Affine(
          input_size,
          output_size=output_size,
          batch_shape=kernel_batch_shape,
      )
      x = tf.ones((input_batch_shape + (input_size,)), dtype=tf.float32)
      y = affine(x)
      self.assertAllEqual(
          y.shape,
          ps.broadcast_shape(
              kernel_batch_shape, input_batch_shape
          ).concatenate(output_size),
      )
  
imports: import functools
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import softmax_centered
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.experimental import nn
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.internal import tf_keras
  from tensorflow_probability.python.util import deferred_tensor
label_desc: Use image node_id 5 for calling the AffineTest obj's underlying member method code with example usage: obj.test_works_correctly(input_size, output_size, kernel_batch_shape, input_batch_shape) without return types