def test_construct_circuit(self): """Test construct_circuit""" oracle = QuantumCircuit(2) oracle.cz(0, 1) grover = Grover(oracle=oracle, good_state=["11"]) constructed = grover.construct_circuit(1) grover_op = GroverOperator(oracle) expected = QuantumCircuit(2) expected.compose(grover_op.state_preparation, inplace=True) expected.compose(grover_op, inplace=True) self.assertTrue(Operator(constructed).equiv(Operator(expected)))
def test_construct_circuit(self): """Test construct_circuit""" oracle = QuantumCircuit(2) oracle.cz(0, 1) problem = AmplificationProblem(oracle) grover = Grover() constructed = grover.construct_circuit(problem, 2, measurement=False) grover_op = GroverOperator(oracle) expected = QuantumCircuit(2) expected.h([0, 1]) expected.compose(grover_op.power(2), inplace=True) self.assertTrue(Operator(constructed).equiv(Operator(expected)))