code: def test_local_grid_searcher_numeric():
      search_spaces = [
          [dict(a=space.Bool()), [{"a": 0}, {"a": 1}]],
          [
              dict(a=space.Int(12, 15)),
              [{"a": 12}, {"a": 13}, {"a": 14}, {"a": 15}],
          ],
          [
              dict(a=space.Real(12, 16)),
              [
                  {"a": 12.0},
                  {"a": 13.333333333333334},
                  {"a": 14.666666666666666},
                  {"a": 16.0},
              ],
          ],
          [
              dict(a=space.Real(12, 16, log=True)),
              [
                  {"a": 12.0},
                  {"a": 13.207708995578509},
                  {"a": 14.536964742657117},
                  {"a": 16.0},
              ],
          ],
      ]
      for search_space, expected_values in search_spaces:
          searcher = LocalGridSearcher(search_space=search_space)
          actual_values = []
          while True:
              try:
                  cfg = searcher.get_config()
                  actual_values.append(cfg)
                  searcher.update(cfg, reward=0.1)
              except AssertionError as e:
                  assert expected_values == actual_values
                  break
  
imports: from autogluon.common import space
  from autogluon.core.searcher import LocalGridSearcher
label_desc: Use image node_id 2 for calling a global function with example usage: test_local_grid_searcher_numeric() without return types