code: def setUp(self) -> None:
      self.search_space = SearchSpace(
          parameters=[
              RangeParameter(
                  "a",
                  lower=1,
                  upper=3,
                  parameter_type=ParameterType.FLOAT,
              ),
              ChoiceParameter(
                  "b",
                  parameter_type=ParameterType.STRING,
                  values=["a", "b", "c"],
              ),
          ]
      )
      self.observation_features = [
          ObservationFeatures(parameters={"a": 2, "b": "a"}),
          ObservationFeatures(parameters={"a": 3, "b": "b"}),
          ObservationFeatures(parameters={"a": 3, "b": "c"}),
      ]
      self.transformed_features = [
          ObservationFeatures(
              parameters={"HASH_PARAM": 805305186152.0}
          ),
          ObservationFeatures(
              parameters={"HASH_PARAM": 800097055771.0}
          ),
          ObservationFeatures(parameters={"HASH_PARAM": 1551602558.0}),
      ]
      self.t = SearchSpaceToFloat()
  
file_path: Ax/ax/modelbridge/transforms/tests/test_search_space_to_float_transform.py
imports: from copy import deepcopy
  from ax.core.observation import ObservationFeatures
  from ax.core.parameter import ChoiceParameter, ParameterType, RangeParameter
  from ax.core.search_space import SearchSpace
  from ax.modelbridge.transforms.search_space_to_float import SearchSpaceToFloat
  from ax.utils.common.testutils import TestCase
label_desc: Use image node_id 1 for calling the SearchSpaceToFloatTest obj's underlying member method code with example usage: obj.setUp() without return types