class_docstr: common layer unittest 
class_docstr_tok: ["common","layer","unittest"]
docstr: test linear
docstr_tok: ["test","linear"]
code: def test_linear(self):
      """test linear"""
      inputs = tf.random_uniform(
          shape=[4, 5], dtype=tf.float32, maxval=1.0
      )  # A 2D tensor
      shape = [5, 4]
      output = cl.linear(inputs, "test_linear0", shape)
      output_shape = [4, 4]
      self.assertAllEqual(tf.shape(output), output_shape)
  
      inputs = tf.random_uniform(
          shape=[2, 4, 5], dtype=tf.float32, maxval=1.0
      )  # A 3D tensor
      shape = [5, 4]
      output = cl.linear(inputs, "test_linear1", shape)
      output_shape = [2, 4, 4]
      self.assertAllEqual(tf.shape(output), output_shape)
  
      # A 4D tensor [B, C, H, W]
      inputs = tf.random_uniform(
          shape=[2, 3, 4, 5], dtype=tf.float32, maxval=1.0
      )
      shape = [5, 4]
      output = cl.linear(inputs, "test_linear2", shape)
      output_shape = [2, 3, 4, 4]
      self.assertAllEqual(tf.shape(output), output_shape)
  
file_path: delta/delta/layers/common_layers_test.py
imports: import delta.compat
  from absl import logging
  import common_layers
label_desc: Use image node_id 5 for calling the LossUtilTest obj's underlying member method code with example usage: obj.test_linear() without return types