code: def testParetoShapeBroadcast(self):
      scale = tf.constant([[3.0, 2.0]])
      concentration = tf.constant([[4.0], [5.0], [6.0]])
      dist = pareto.Pareto(concentration, scale, validate_args=True)
  
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()), (3, 2)
      )
      self.assertAllEqual(dist.batch_shape, tf.TensorShape([3, 2]))
      self.assertAllEqual(self.evaluate(dist.event_shape_tensor()), [])
      self.assertEqual(dist.event_shape, tf.TensorShape([]))
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import pareto
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 3 for calling the ParetoTest obj's underlying member method code with example usage: obj.testParetoShapeBroadcast() without return types