code: def test_TransformObservationFeatures(self) -> None:
      observation_features = [
          ObservationFeatures(parameters={"x": 0.95, "a": 2, "b": "c"})
      ]
      obs_ft2 = deepcopy(observation_features)
      obs_ft2 = self.t.transform_observation_features(obs_ft2)
      self.assertEqual(
          obs_ft2,
          [
              ObservationFeatures(
                  parameters={"x": logit(0.95), "a": 2, "b": "c"}
              )
          ],
      )
      # Untransform
      obs_ft2 = self.t.untransform_observation_features(obs_ft2)
      x_true = expit(logit(0.95))
      self.assertAlmostEqual(
          x_true, 0.95
      )  # Need to be careful with rounding here
      self.assertEqual(
          obs_ft2,
          [
              ObservationFeatures(
                  parameters={"x": x_true, "a": 2, "b": "c"}
              )
          ],
      )
  
file_path: Ax/ax/modelbridge/transforms/tests/test_logit_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.exceptions.core import UnsupportedError, UserInputError
  from ax.modelbridge.transforms.logit import Logit
  from ax.utils.common.testutils import TestCase
  from ax.utils.testing.core_stubs import get_robust_search_space
  from scipy.special import expit, logit
label_desc: Use image node_id 4 for calling the LogitTransformTest obj's underlying member method code with example usage: obj.test_TransformObservationFeatures() without return types