def test_bell_state_to_from_qasm(): """Tests cirq.Circuit --> QASM string --> 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])]) qasm = to_qasm(cirq_circuit) # Qasm from Cirq circuit_cirq = from_qasm(qasm) assert _equal(cirq_circuit, circuit_cirq)
def test_convert_with_barrier(as_qasm): """Tests converting a Qiskit circuit with a barrier to a Cirq circuit.""" n = 5 qiskit_circuit = qiskit.QuantumCircuit(qiskit.QuantumRegister(n)) qiskit_circuit.barrier() if as_qasm: cirq_circuit = from_qasm(qiskit_circuit.qasm()) else: cirq_circuit = from_qiskit(qiskit_circuit) assert _equal(cirq_circuit, cirq.Circuit())
def test_random_circuit_to_from_qasm(): """Tests cirq.Circuit --> QASM string --> cirq.Circuit with a random one-qubit circuit. """ cirq_circuit = cirq.testing.random_circuit(qubits=2, n_moments=10, op_density=0.99, random_state=2) qasm = to_qasm(cirq_circuit) circuit_cirq = from_qasm(qasm) assert cirq.equal_up_to_global_phase(cirq_circuit.unitary(), circuit_cirq.unitary())
def test_convert_with_multiple_barriers(as_qasm): """Tests converting a Qiskit circuit with barriers to a Cirq circuit.""" n = 1 num_ops = 10 qreg = qiskit.QuantumRegister(n) qiskit_circuit = qiskit.QuantumCircuit(qreg) for _ in range(num_ops): qiskit_circuit.h(qreg) qiskit_circuit.barrier() if as_qasm: cirq_circuit = from_qasm(qiskit_circuit.qasm()) else: cirq_circuit = from_qiskit(qiskit_circuit) qbit = cirq.LineQubit(0) correct = cirq.Circuit(cirq.ops.H.on(qbit) for _ in range(num_ops)) assert _equal(cirq_circuit, correct)