code: def _test_param_static_shapes(self, sample_shape, expected):
      param_shapes = (
          emg.ExponentiallyModifiedGaussian.param_static_shapes(
              sample_shape
          )
      )
      mu_shape, sigma_shape, lambda_shape = (
          param_shapes["loc"],
          param_shapes["scale"],
          param_shapes["rate"],
      )
      self.assertEqual(expected, mu_shape)
      self.assertEqual(expected, sigma_shape)
      self.assertEqual(expected, lambda_shape)
  
imports: import math
  import numpy
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import exponentially_modified_gaussian
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 2 for calling the _ExponentiallyModifiedGaussianTest obj's underlying member method code with example usage: obj._test_param_static_shapes(sample_shape, expected) without return types