code: def zero_inflated_negative_binomial(
      draw, batch_shape=None, enable_vars=False, validate_args=True
  ):
      """Strategy for drawing a ZeroInflatedNegativeBinomial."""
      if batch_shape is None:
          batch_shape = draw(tfp_hps.shapes())
  
      dtype = np.float32
  
      inflated_loc_probs_strategy = tfp_hps.constrained_tensors(
          constraint_fn=tf.math.sigmoid,
          shape=tensorshape_util.as_list(batch_shape),
      )
      inflated_loc_probs = draw(
          tfp_hps.maybe_variable(
              inflated_loc_probs_strategy,
              enable_vars=enable_vars,
              dtype=dtype,
              name="inflated_loc_probs",
          )
      )
  
      total_count_strategy = tfp_hps.constrained_tensors(
          constraint_fn=tfp_hps.softplus_plus_eps(),
          shape=tensorshape_util.as_list(batch_shape),
      )
      total_count = draw(
          tfp_hps.maybe_variable(
              total_count_strategy,
              enable_vars=enable_vars,
              dtype=dtype,
              name="total_count",
          )
      )
  
      # Constrain probs away from 0 to avoid immense samples.
      # See b/178842153.
      logits_strategy = tfp_hps.constrained_tensors(
          constraint_fn=lambda x: tf.minimum(x, 15.0),
          shape=tensorshape_util.as_list(batch_shape),
      )
      logits = draw(
          tfp_hps.maybe_variable(
              logits_strategy,
              enable_vars=enable_vars,
              dtype=dtype,
              name="logits",
          )
      )
  
      result_dist = tfd.ZeroInflatedNegativeBinomial(
          inflated_loc_probs=inflated_loc_probs,
          total_count=total_count,
          logits=logits,
          validate_args=validate_args,
      )
      return result_dist
  
imports: import collections
  import functools
  import inspect
  from absl import logging
  import hypothesis
  from hypothesis import strategies
  import numpy
  import six
  import tensorflow.compat.v2
  from tensorflow_probability.python import distributions
  from tensorflow_probability.python import util
  from tensorflow_probability.python.bijectors import ascending
  from tensorflow_probability.python.bijectors import hypothesis_testlib
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.experimental import distributions
  from tensorflow_probability.python.internal import hypothesis_testlib
  from tensorflow_probability.python.internal import tensorshape_util
label_desc: Use image node_id 35 for calling a global function with example usage: zero_inflated_negative_binomial(draw, batch_shape, enable_vars, validate_args) and returns: result_dist