code: def test_GoodSetter(self) -> None:
      self.param1.update_range(lower=1.0)
      self.param1.update_range(upper=1.0011)
      self.param1.set_log_scale(False)
      self.param1.set_digits(3)
      self.assertEqual(self.param1.digits, 3)
      self.assertEqual(self.param1.upper, 1.001)
  
      # This would cast Upper = Lower = 1, which is not allowed
      with self.assertRaises(UserInputError):
          self.param1.set_digits(1)
  
      self.param1.update_range(lower=2.0, upper=3.0)
      self.assertEqual(self.param1.lower, 2.0)
      self.assertEqual(self.param1.upper, 3.0)
  
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 8 for calling the RangeParameterTest obj's underlying member method code with example usage: obj.test_GoodSetter() without return types