Ejemplo n.º 1
0
def test_to_pyquil_from_pyquil_not_starting_at_zero():
    p = Program()
    p += X(10)
    p += Y(11)
    p += Z(12)
    p += CNOT(10, 11)
    p += CZ(11, 12)
    assert p.out() == to_pyquil(from_pyquil(p)).out()
Ejemplo n.º 2
0
def test_to_pyquil_from_pyquil_simple():
    p = Program()
    p += X(0)
    p += Y(1)
    p += Z(2)
    p += CNOT(0, 1)
    p += CZ(1, 2)
    assert p.out() == to_pyquil(from_pyquil(p)).out()
Ejemplo n.º 3
0
def random_one_qubit_identity_circuit(num_cliffords: int) -> pyquil.Program:
    """Returns a single-qubit identity circuit.

    Args:
        num_cliffords (int): Number of cliffords used to generate the circuit.

    Returns:
        circuit: Quantum circuit as a :class:`pyquil.Program` object.
    """
    return to_pyquil(
        rb_circuits(n_qubits=1, num_cliffords=[num_cliffords], trials=1)[0])
Ejemplo n.º 4
0
def test_to_pyquil_from_pyquil_almost_all_gates():
    """PHASE, PSWAP, S, T, declaration, and measurement don't convert back
    and forth perfectly (in terms of labels -- the program unitaries and
    number of measurements are equivalent)."""
    p = Program(MEASURELESS_QUIL_PROGRAM)
    assert p.out() == to_pyquil(from_pyquil(p)).out()
Ejemplo n.º 5
0
def test_to_pyquil_from_pyquil_parameterized():
    p = maxcut_qaoa_program(np.pi)
    assert p.out() == to_pyquil(from_pyquil(p)).out()