Ejemplo n.º 1
0
def test_repr():
    cirq.testing.assert_equivalent_repr(cirq_pasqal.PasqalGateset(),
                                        setup_code='import cirq_pasqal')
    cirq.testing.assert_equivalent_repr(
        cirq_pasqal.PasqalGateset(include_additional_controlled_ops=False),
        setup_code='import cirq_pasqal',
    )
Ejemplo n.º 2
0
def test_decomposition(op: cirq.Operation):
    circuit = cirq.Circuit(op)
    gs = cirq_pasqal.PasqalGateset()
    gs2 = cirq_pasqal.PasqalGateset(include_additional_controlled_ops=False)
    for gateset in [gs, gs2]:
        decomposed_circuit = cirq.optimize_for_target_gateset(circuit,
                                                              gateset=gateset)
        for new_op in decomposed_circuit.all_operations():
            assert gs.validate(new_op)
Ejemplo n.º 3
0
def test_gateset(op: cirq.Operation, expected: bool):
    gs = cirq_pasqal.PasqalGateset()
    assert gs.validate(op) == expected
    assert gs.validate(cirq.Circuit(op)) == expected
Ejemplo n.º 4
0
def test_control_gates_not_included(op: cirq.Operation, expected: bool):
    gs = cirq_pasqal.PasqalGateset(include_additional_controlled_ops=False)
    assert gs.validate(op) == expected
    assert gs.validate(cirq.Circuit(op)) == expected
Ejemplo n.º 5
0
    "op",
    [
        cirq.H(Q) ** 0.5,
        cirq.X(Q),
        cirq.SWAP(Q, Q2),
        cirq.ISWAP(Q, Q2),
        cirq.CCNOT(Q, Q2, Q3),
        cirq.CCZ(Q, Q2, Q3),
        cirq.ParallelGate(cirq.X, num_copies=3)(Q, Q2, Q3),
        cirq.SWAP(Q, Q2).controlled_by(Q3),
    ],
)
@pytest.mark.parametrize(
    "gs",
    [
        cirq_pasqal.PasqalGateset(),
        cirq_pasqal.PasqalGateset(include_additional_controlled_ops=False),
    ],
)
def test_decomposition(op: cirq.Operation, gs: cirq.CompilationTargetGateset):
    circuit = cirq.Circuit(op)
    decomposed_circuit = cirq.optimize_for_target_gateset(
        circuit, gateset=gs, ignore_failures=False
    )
    gs.validate(decomposed_circuit)


@pytest.mark.parametrize(
    "gs",
    [
        cirq_pasqal.PasqalGateset(),