code: def test_bounds_checking(self):
      # test that the bounds checking works
      func = rosen
      bounds = [(-3, None)]
      assert_raises(ValueError, differential_evolution, func, bounds)
      bounds = [(-3)]
      assert_raises(ValueError, differential_evolution, func, bounds)
      bounds = [(-3, 3), (3, 4, 5)]
      assert_raises(ValueError, differential_evolution, func, bounds)
  
imports: import multiprocessing
  from scipy.optimize import _differentialevolution
  from scipy.optimize._differentialevolution import DifferentialEvolutionSolver
  from scipy.optimize import differential_evolution
  import numpy
  from scipy.optimize import rosen
  from numpy.testing import assert_equal, assert_allclose, assert_almost_equal, assert_string_equal, assert_
  from pytest import raises, warns
label_desc: Use image node_id 19 for calling the TestDifferentialEvolutionSolver obj's underlying member method code with example usage: obj.test_bounds_checking() without return types