code: def test_brute_no_bounds_with_brute_step(params_lmfit):
      """TEST 7: using no bounds, but brute_step specified (Ns=15)."""
      Ns = 15
      params_lmfit["x"].set(min=-np.inf, max=np.inf, brute_step=0.1)
      params_lmfit["y"].set(min=-np.inf, max=np.inf, brute_step=0.2)
  
      mini = lmfit.Minimizer(func_lmfit, params_lmfit)
      out = mini.minimize(method="brute", Ns=15)
  
      grid_x_expected = np.linspace(
          params_lmfit["x"].value
          - (Ns // 2) * params_lmfit["x"].brute_step,
          params_lmfit["x"].value
          + (Ns // 2) * params_lmfit["x"].brute_step,
          Ns,
      )
      grid_x = np.unique([par.ravel() for par in out.brute_grid][0])
      assert_allclose(grid_x, grid_x_expected)
  
      grid_y_expected = np.linspace(
          params_lmfit["y"].value
          - (Ns // 2) * params_lmfit["y"].brute_step,
          params_lmfit["y"].value
          + (Ns // 2) * params_lmfit["y"].brute_step,
          Ns,
      )
      grid_y = np.unique([par.ravel() for par in out.brute_grid][1])
      assert_allclose(grid_y, grid_y_expected)
  
imports: import pickle
  import numpy
  from numpy.testing import assert_allclose, assert_equal
  import pytest
  from scipy import optimize
  import lmfit
label_desc: Use image node_id 10 for calling a global function with example usage: test_brute_no_bounds_with_brute_step(params_lmfit) without return types