diff --git a/qiskit/circuit/quantumcircuit.py b/qiskit/circuit/quantumcircuit.py index be7c16795398..73ee2ef8531d 100644 --- a/qiskit/circuit/quantumcircuit.py +++ b/qiskit/circuit/quantumcircuit.py @@ -220,6 +220,9 @@ def __str__(self): return str(self.draw(output='text')) def __eq__(self, other): + if not isinstance(other, QuantumCircuit): + return False + # TODO: remove the DAG from this function from qiskit.converters import circuit_to_dag return circuit_to_dag(self) == circuit_to_dag(other) diff --git a/test/python/circuit/test_circuit_operations.py b/test/python/circuit/test_circuit_operations.py index 1ab87ef09206..c9a7217e4fb5 100644 --- a/test/python/circuit/test_circuit_operations.py +++ b/test/python/circuit/test_circuit_operations.py @@ -587,6 +587,38 @@ def test_inverse(self): expected.global_phase = -0.5 self.assertEqual(qc.inverse(), expected) + def test_compare_two_equal_circuits(self): + """Test to compare that 2 circuits are equal. + """ + qc1 = QuantumCircuit(2, 2) + qc1.h(0) + + qc2 = QuantumCircuit(2, 2) + qc2.h(0) + + self.assertTrue(qc1 == qc2) + + def test_compare_two_different_circuits(self): + """Test to compare that 2 circuits are different. + """ + qc1 = QuantumCircuit(2, 2) + qc1.h(0) + + qc2 = QuantumCircuit(2, 2) + qc2.x(0) + + self.assertFalse(qc1 == qc2) + + def test_compare_a_circuit_with_none(self): + """Test to compare that a circuit is different to None. + """ + qc1 = QuantumCircuit(2, 2) + qc1.h(0) + + qc2 = None + + self.assertFalse(qc1 == qc2) + class TestCircuitBuilding(QiskitTestCase): """QuantumCircuit tests."""