code: def test_BadSetter(self) -> None:
      with self.assertRaises(ValueError):
          # pyre-fixme[6]: For 1st param expected `Optional[float]` but got `str`.
          self.param1.update_range(upper="foo")
  
      with self.assertRaises(ValueError):
          # pyre-fixme[6]: For 1st param expected `Optional[float]` but got `str`.
          self.param1.update_range(lower="foo")
  
      with self.assertRaises(UserInputError):
          self.param1.update_range(lower=4)
  
      with self.assertRaises(UserInputError):
          self.param1.update_range(upper=0.5)
  
      with self.assertRaises(UserInputError):
          self.param1.update_range(lower=1.0, upper=0.9)
  
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 7 for calling the RangeParameterTest obj's underlying member method code with example usage: obj.test_BadSetter() without return types