code: def test_shape(self):
      d = masked.Masked(
          normal.Normal(tf.zeros([7, 20]), 1), tf.sequence_mask(15, 20)
      )
      self.assertEqual((), d.event_shape)
      self.assertAllEqual([], d.event_shape_tensor())
      self.assertEqual((7, 20), d.batch_shape)
      self.assertAllEqual([7, 20], d.batch_shape_tensor())
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import gamma
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import log_prob_ratio
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import masked
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import relaxed_onehot_categorical
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 1 for calling the MaskedTest obj's underlying member method code with example usage: obj.test_shape() without return types