code: def test_fixed_features(self) -> None:
      ms = ModelSpec(model_enum=Models.GPEI)
      self.assertIsNone(ms.fixed_features)
      new_features = ObservationFeatures(parameters={"a": 1.0})
      ms.fixed_features = new_features
      self.assertEqual(ms.fixed_features, new_features)
      # pyre-fixme[16]: Optional type has no attribute `__getitem__`.
      self.assertEqual(
          ms.model_gen_kwargs["fixed_features"], new_features
      )
  
imports: import warnings
  from unittest import mock
  from unittest.mock import MagicMock, Mock, patch
  from ax.core.observation import ObservationFeatures
  from ax.exceptions.core import UserInputError
  from ax.modelbridge.factory import get_sobol
  from ax.modelbridge.model_spec import FactoryFunctionModelSpec, ModelSpec
  from ax.modelbridge.modelbridge_utils import extract_search_space_digest
  from ax.modelbridge.registry import Models
  from ax.utils.common.testutils import TestCase
  from ax.utils.testing.core_stubs import get_branin_experiment
  from ax.utils.testing.mock import fast_botorch_optimize
label_desc: Use image node_id 6 for calling the ModelSpecTest obj's underlying member method code with example usage: obj.test_fixed_features() without return types