code: def test_BadConstruct(self) -> None:
      with self.assertRaises(ValueError):
          SumConstraint(
              parameters=[self.x, self.x],
              is_upper_bound=False,
              bound=-5.0,
          )
      z = ChoiceParameter("z", ParameterType.STRING, ["a", "b", "c"])
      with self.assertRaises(ValueError):
          # pyre-fixme[16]: `SumConstraintTest` has no attribute `constraint`.
          self.constraint = SumConstraint(
              parameters=[self.x, z], is_upper_bound=False, bound=-5.0
          )
  
imports: from ax.core.parameter import ChoiceParameter, FixedParameter, ParameterType, RangeParameter
  from ax.core.parameter_constraint import ComparisonOp, OrderConstraint, ParameterConstraint, SumConstraint
  from ax.utils.common.testutils import TestCase
label_desc: Use image node_id 2 for calling the SumConstraintTest obj's underlying member method code with example usage: obj.test_BadConstruct() without return types