diff --git a/qiskit/circuit/parameterexpression.py b/qiskit/circuit/parameterexpression.py index 1583b56c70ae..89ad58342fed 100644 --- a/qiskit/circuit/parameterexpression.py +++ b/qiskit/circuit/parameterexpression.py @@ -383,10 +383,9 @@ def __eq__(self, other): Returns: bool: result of the comparison """ - from sympy import srepr if isinstance(other, ParameterExpression): return (self.parameters == other.parameters - and srepr(self._symbol_expr) == srepr(other._symbol_expr)) + and self._symbol_expr.equals(other._symbol_expr)) elif isinstance(other, numbers.Number): return (len(self.parameters) == 0 and complex(self._symbol_expr) == other) diff --git a/test/python/circuit/test_parameters.py b/test/python/circuit/test_parameters.py index efaaefe6395d..5f2ccbca5770 100644 --- a/test/python/circuit/test_parameters.py +++ b/test/python/circuit/test_parameters.py @@ -1546,6 +1546,14 @@ def test_parameter_expression_equal_to_identical(self): self.assertEqual(expr1, expr2) + def test_parameter_expression_equal_floats_to_ints(self): + """Verify an expression with float and int is identical.""" + theta = Parameter('theta') + expr1 = 2.0 * theta + expr2 = 2 * theta + + self.assertEqual(expr1, expr2) + def test_parameter_expression_not_equal_if_params_differ(self): """Verify expressions not equal if parameters are different.""" theta1 = Parameter('theta')