code: def test_expected_value_after_three_iterations(
      self, parameter, seed, expected
  ):
      study = get_local_search_study_lower_is_better([parameter], seed)
      for trial in study:
          study.add_observation(
              trial, objective=trial.parameters["p"], iteration=1
          )
          study.finalize(trial)
          if trial.id == 3:
              break
  
      assert study.get_best_result()["Objective"] in expected
  
imports: from __future__ import absolute_import
  import collections
  import pandas
  import numpy
  import sherpa
  import logging
  import itertools
  import pytest
  from testing_utils import *
label_desc: Use image node_id 2 for calling the TestLocalSearch obj's underlying member method code with example usage: obj.test_expected_value_after_three_iterations(parameter, seed, expected) without return types