code: def test_TransformObservationFeaturesRandomized(self) -> None:
      observation_features = [
          ObservationFeatures(
              parameters={"x": 2.2, "a": 2, "b": "b", "d": 4}
          )
      ]
      obs_ft2 = deepcopy(observation_features)
      obs_ft2 = self.t2.transform_observation_features(obs_ft2)
      self.assertEqual(
          obs_ft2,
          [
              ObservationFeatures(
                  parameters={"x": 2.2, "a": 2, "b": "b", "d": 4}
              )
          ],
      )
      self.assertTrue(isinstance(obs_ft2[0].parameters["a"], float))
      self.assertTrue(isinstance(obs_ft2[0].parameters["d"], float))
      obs_ft2 = self.t2.untransform_observation_features(obs_ft2)
      self.assertEqual(obs_ft2, observation_features)
  
imports: from copy import deepcopy
  from unittest import mock
  from ax.core.observation import ObservationFeatures
  from ax.core.parameter import ChoiceParameter, ParameterType, RangeParameter
  from ax.core.parameter_constraint import OrderConstraint, SumConstraint
  from ax.core.search_space import RobustSearchSpace, SearchSpace
  from ax.exceptions.core import UnsupportedError
  from ax.modelbridge.transforms.int_to_float import IntToFloat
  from ax.utils.common.testutils import TestCase
  from ax.utils.common.typeutils import checked_cast
  from ax.utils.testing.core_stubs import get_robust_search_space
label_desc: Use image node_id 4 for calling the IntToFloatTransformTest obj's underlying member method code with example usage: obj.test_TransformObservationFeaturesRandomized() without return types