code: def test_Clone(self) -> None:
      param_clone = self.param1.clone()
      self.assertEqual(len(self.param1.values), len(param_clone.values))
      self.assertEqual(self.param1._is_ordered, param_clone._is_ordered)
  
      param_clone._values.append("boo")
      self.assertNotEqual(
          len(self.param1.values), len(param_clone.values)
      )
  
      # With dependents.
      param = ChoiceParameter(
          name="x",
          parameter_type=ParameterType.STRING,
          values=["foo", "bar", "baz"],
          dependents={"foo": ["y", "z"], "bar": ["w"]},
      )
      param_clone = param.clone()
      not_none(param_clone._dependents)["foo"] = ["y"]
      self.assertEqual(
          param.dependents, {"foo": ["y", "z"], "bar": ["w"]}
      )
      self.assertEqual(
          param_clone.dependents, {"foo": ["y"], "bar": ["w"]}
      )
  
imports: from ax.core.parameter import _get_parameter_type, ChoiceParameter, EPS, FixedParameter, ParameterType, RangeParameter
  from ax.exceptions.core import UserInputError
  from ax.utils.common.testutils import TestCase
  from ax.utils.common.typeutils import not_none
label_desc: Use image node_id 9 for calling the ChoiceParameterTest obj's underlying member method code with example usage: obj.test_Clone() without return types