code: def test_symbolic_model(self, module_fn, input_shape, dtype):
      module = module_fn()
  
      inputs = tf.keras.Input(input_shape[1:], dtype=dtype)
      layer = LayerAdapter(module=module, dtype=dtype)
      output = layer(inputs)
      model = tf.keras.Model(inputs=inputs, outputs=output)
  
      example_input = tf.ones(input_shape, dtype=dtype)
      # Check outputs are the same.
      for m_y, l_y in zip(
          tree.flatten(module(example_input)),
          tree.flatten(model(example_input)),
      ):
          self.assertEqual(m_y.shape, l_y.shape)
          self.assertEqual(m_y.dtype, l_y.dtype)
  
imports: from absl.testing import parameterized
  import sonnet
  from sonnet.src import test_utils
  from sonnet.src.conformance import descriptors
  import tensorflow
  import tree
label_desc: Use image node_id 5 for calling the KerasTest obj's underlying member method code with example usage: obj.test_symbolic_model(module_fn, input_shape, dtype) without return types