docstr: Test broadcasting with dynamic shapes.
docstr_tok: ["Test","broadcasting","with","dynamic","shapes","."]
code: def test_broadcast_common_batch_shape_dynamic(self):
      """Test broadcasting with dynamic shapes."""
  
      @tf.function(
          input_signature=[
              tf.TensorSpec([2, 3, None]),
              tf.TensorSpec([None, 5]),
          ]
      )
      def fn(x, y):
          return tff.utils.broadcast_common_batch_shape(x, y)
  
      x = tf.random.uniform(shape=[2, 3, 10])
      y = tf.random.uniform(shape=[1, 5])
      x_broadcasted, y_broadcasted = fn(x, y)
      with self.subTest("ShapeX"):
          x_eval = self.evaluate(x_broadcasted)
          self.assertAllEqual(x_eval.shape, [2, 3, 10])
      with self.subTest("ShapeY"):
          y_eval = self.evaluate(y_broadcasted)
          self.assertAllEqual(y_eval.shape, [2, 3, 5])
  
file_path: tf-quant-finance/tf_quant_finance/utils/shape_utils_test.py
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  import tf_quant_finance
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 9 for calling the ShapeUtilsTest obj's underlying member method code with example usage: obj.test_broadcast_common_batch_shape_dynamic() and returns: tff