code: def testShapes(self):
      for samples_shape in ([2], [2, 4], [4, 2, 4]):
          input_ = random_samples(samples_shape)
          input_ph = tf1.placeholder_with_default(
              input_, shape=samples_shape if self.static_shape else None
          )
          dist = empirical.Empirical(
              samples=input_ph, validate_args=True
          )
          self.assertAllEqual(
              samples_shape[:-1],
              self.evaluate(dist.batch_shape_tensor()),
          )
          self.assertAllEqual(
              [], self.evaluate(dist.event_shape_tensor())
          )
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import empirical
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 2 for calling the EmpiricalScalarTest obj's underlying member method code with example usage: obj.testShapes() without return types