code: def test_build(self, module_fn, input_shape, dtype):
      module = module_fn()
      build_output_spec = snt.build(
          module, tf.TensorSpec(input_shape, dtype)
      )
      actual_output = module(tf.ones(input_shape, dtype))
      actual_output_spec = tree.map_structure(
          if_present(lambda t: tf.TensorSpec(t.shape, t.dtype)),
          actual_output,
      )
      tree.map_structure(
          self.assertCompatible, build_output_spec, actual_output_spec
      )
  
file_path: sonnet/sonnet/src/conformance/build_test.py
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 1 for calling the BuildTest obj's underlying member method code with example usage: obj.test_build(module_fn, input_shape, dtype) without return types