def test_bell_state_to_from_circuits(): """Tests cirq.Circuit --> qiskit.QuantumCircuit --> cirq.Circuit with a Bell state circuit. """ qreg = cirq.LineQubit.range(2) cirq_circuit = cirq.Circuit( [cirq.ops.H.on(qreg[0]), cirq.ops.CNOT.on(qreg[0], qreg[1])] ) qiskit_circuit = to_qiskit(cirq_circuit) # Qiskit from Cirq circuit_cirq = from_qiskit(qiskit_circuit) # Cirq from Qiskit assert _equal(cirq_circuit, circuit_cirq)
def test_random_circuit_to_from_circuits(): """Tests cirq.Circuit --> qiskit.QuantumCircuit --> cirq.Circuit with a random two-qubit circuit. """ cirq_circuit = cirq.testing.random_circuit( qubits=2, n_moments=10, op_density=0.99, random_state=1 ) qiskit_circuit = to_qiskit(cirq_circuit) circuit_cirq = from_qiskit(qiskit_circuit) assert cirq.equal_up_to_global_phase( cirq_circuit.unitary(), circuit_cirq.unitary() )
def test_transform_qregs_two_qubit_ops(new_reg_sizes): nqubits = sum(new_reg_sizes) circ = to_qiskit( cirq.testing.random_circuit( nqubits, n_moments=5, op_density=1, random_state=1 ) ) orig = circ.copy() new_qregs = [qiskit.QuantumRegister(s) for s in new_reg_sizes] _transform_registers(circ, new_qregs=new_qregs) assert circ.qregs == new_qregs assert circ.cregs == orig.cregs assert _equal(from_qiskit(circ), from_qiskit(orig))
def test_to_qiskit_assign_qregs(qreg_sizes): nbits = sum(qreg_sizes) cirq_circuit = cirq.testing.random_circuit( nbits, n_moments=5, op_density=1, random_state=10 ) qregs = [qiskit.QuantumRegister(s) for s in qreg_sizes] qiskit_circuit = to_qiskit(cirq_circuit, qregs=qregs) assert qiskit_circuit.qregs == qregs assert qiskit_circuit.cregs == [] cirq.testing.assert_allclose_up_to_global_phase( cirq.unitary(from_qiskit(qiskit_circuit)), cirq.unitary(cirq_circuit), atol=1e-5, )
def test_transform_qregs_random_circuit(new_reg_sizes, measure): nbits = sum(new_reg_sizes) circ = to_qiskit( cirq.testing.random_circuit( nbits, n_moments=5, op_density=1, random_state=10 ) ) creg = qiskit.ClassicalRegister(nbits) circ.add_register(creg) if measure: circ.measure(circ.qregs[0], creg) orig = circ.copy() new_qregs = [qiskit.QuantumRegister(s) for s in new_reg_sizes] _transform_registers(circ, new_qregs=new_qregs) assert circ.qregs == new_qregs assert _equal(from_qiskit(circ), from_qiskit(orig))
def test_to_qiskit_assign_qregs_and_cregs(qreg_sizes, measure, flip_creg): nbits = sum(qreg_sizes) cirq_circuit = cirq.testing.random_circuit( nbits, n_moments=5, op_density=1, random_state=10 ) if measure: cirq_circuit.append(cirq.measure_each(*cirq_circuit.all_qubits())) qregs = [qiskit.QuantumRegister(s) for s in qreg_sizes] cregs = [qiskit.ClassicalRegister(s) for s in qreg_sizes] if flip_creg: cregs = cregs[::-1] qiskit_circuit = to_qiskit(cirq_circuit, qregs=qregs, cregs=cregs) assert qiskit_circuit.qregs == qregs assert qiskit_circuit.cregs == cregs cirq.testing.assert_allclose_up_to_global_phase( cirq.unitary(from_qiskit(qiskit_circuit)), cirq.unitary(cirq_circuit), atol=1e-5, )