code: def test_failure(self):
      N = 5000
      rng = np.random.default_rng(self.seed)
  
      dist = stats.nbinom
      shapes = (5, 0.5)
      data = dist.rvs(*shapes, size=N, random_state=rng)
  
      assert data.min() == 0
      # With lower bounds on location at 0.5, likelihood is zero
      bounds = [(0, 30), (0, 1), (0.5, 10)]
      res = stats.fit(dist, data, bounds)
      message = "Optimization converged to parameter values that are"
      assert res.message.startswith(message)
      assert res.success is False
  
imports: import os
  import numpy
  import numpy.testing
  from numpy.testing import assert_allclose, assert_equal
  import pytest
  from scipy import stats
  from scipy.optimize import differential_evolution
  from .test_continuous_basic import distcont
  from scipy.stats._distn_infrastructure import FitError
  from scipy.stats._distr_params import distdiscrete
  from scipy.stats import goodness_of_fit
label_desc: Use image node_id 17 for calling the TestFit obj's underlying member method code with example usage: obj.test_failure() without return types